使用Java 6和Jsoup 1.7.3,如何在同级文本不在元素内的情况下解析此HTML?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用Java 6和Jsoup 1.7.3,如何在同级文本不在元素内的情况下解析此HTML?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2607字,纯文字阅读大概需要4分钟。
内容图文
![使用Java 6和Jsoup 1.7.3,如何在同级文本不在元素内的情况下解析此HTML?](/upload/InfoBanner/zyjiaocheng/660/a9384212fcef426586ed835455773552.jpg)
主要是我的问题是如何解析…
<p>some text<br />
<br />
<strong>categorized: </strong>like this<br />
<br /></p>
…我最终对使用Java和Jsoup获得“分类”,“像这样”这样的键值对感兴趣吗?我正在查看< strong>标签是一种我可以用来指示键的定界符,然后它后面的文本(不方便地不包含在标签中)需要我抓取作为值.
我认为对我来说挑战是“像这样”的部分不在一个元素中.它是一个同级节点,但是无法通过CSS选择,因此我无法通过Jsoup找到它.我不清楚在Jsoup中Node和Element关系如何工作,以至于我可以在一次调用中同时获得元素文本“归类”及其同级兄弟“ like this”.
更详细地说,由于我试图从许多消费者产品安全委员会网页上收集数据,因此我无法控制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 6和Jsoup 1.7.3,如何在同级文本不在元素内的情况下解析此HTML?全部内容,希望文章能够帮你解决使用Java 6和Jsoup 1.7.3,如何在同级文本不在元素内的情况下解析此HTML?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。