gpt4 book ai didi

java - 使用 Java 6 和 Jsoup 1.7.3,如何解析同级文本不在元素内的 HTML?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:48:11 25 4
gpt4 key购买 nike

主要是,我的问题是如何解析 ...

<p>some text<br />
<br />
<strong>categorized: </strong>like this<br />
<br /></p>

...我最终对使用 Java 和 Jsoup 获取键值对(如“分类”、“像这样”)感兴趣?我正在查看 标记作为某种分隔符,我可以使用它来指示键,然后它的后续文本不方便地没有包含在我需要作为值获取的标记中。

我认为对我来说挑战是“像这样”的部分不在元素中。它是一个兄弟节点,但它不能用 CSS 选择,所以我无法用 Jsoup 找到它。我不清楚节点和元素的关系在 Jsoup 中是如何工作的,以至于我可以在一次调用中同时获得元素文本“分类”及其兄弟“像这样”。

更详细地说,我无法控制 HTML 结构,因为我正试图从许多消费品安全委员会网页收集数据。这些页面以几种不同的方式格式化,但有一种格式特别导致我在使用 Java 和 Jsoup 解析数据时遇到问题。

<div class="archived">
<p style="text-align: center;"><strong><span style="color: #ff0000;">Note: The hotline number and ...</span></strong></p>
<h2 style="text-align: left;">CPSC, Elkay Manufacturing Co. Announces ...</h2>
<p>WASHINGTON, D.C. - The U.S. Consumer Product Safety Commission ...<br />
<br />
<strong>Name of product:</strong> Elkay hot/cold bottled water coolers <br />
<br />
<br />
<strong>Units:</strong> 145,000<br />
<br />
<strong>Description:</strong> These 115 volt hot/cold bottled water coolers ... <br />
<p><img title="Picture of Recalled Water Cooler" src="/PageFiles/73998/04175.jpg" alt="Picture of Recalled Water Cooler" width="110" height="434" /></p>
</div>

HTML 的特定部分已缩短,但它源自 http://www.cpsc.gov/en/Recalls/2004/CPSC-NETGEAR-Inc-Announce-Recall-of-Wall-Plug-Ethernet-Bridges-/

String url = "http://www.cpsc.gov/en/Recalls/2004/CPSC-NETGEAR-Inc-Announce-Recall-of-Wall-Plug-Ethernet-Bridges-/";
Document doc = Jsoup.connect(url).get();
Elements archived = doc.select("div.archived > *");
for(Element ele : archived) {
//what goes here to get those key/value pairs?
}

最佳答案

这不是一个完整的答案,但它会让你达到 95%。

String url="http://www.cpsc.gov/en/Recalls/2004/CPSC-NETGEAR-Inc-Announce-Recall-of-Wall-Plug-Ethernet-Bridges-/";

Document doc = Jsoup.connect(url).get();

Elements archived = doc.select("div.archived strong");

for (Element element: archived){
System.out.println("KEY: " + element.text());
System.out.println("VALUE: " + element.nextSibling());
}

输出:

KEY: Firm's Hotline: (800) 303-5507
VALUE: <br />

KEY: Name of product:
VALUE: Wall Plug Ethernet Bridge

KEY: Units:
VALUE: About 53,500 units

KEY: Manufacturer:
VALUE: NETGEAR Inc., of Santa Clara, Calif.

KEY: Hazard:
VALUE: The plastic housing on these units can detach, posing a shock hazard.

and so on...

如您所见,需要做一些工作才能忽略不必要的东西,例如第一个元素 KEY/VALUE 对等等,但除此之外它应该可以工作!祝你好运。

关于java - 使用 Java 6 和 Jsoup 1.7.3,如何解析同级文本不在元素内的 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23461151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com