And*_*rew 4 java html-parsing jsoup
我正在尝试解析http://www.craigslist.org/about/sites来构建一组文本/链接,以便使用此信息动态加载程序.到目前为止,我已经这样做了:
Document doc = Jsoup.connect("http://www.craigslist.org/about/sites").get();
Elements elms = doc.select("div.colmask"); // gets 7 countries
Run Code Online (Sandbox Code Playgroud)
在这个标签下面有doc.select("div.state_delimiter,ul")我想要的标签.我设置了我的迭代器并进行了一段时间的查看和调用iterator.next().outerHtml();.我看到每个国家的所有标签.
如何逐步浏览每个div.state_delimiter文本,然后将文本拉下来,直到有一个</ul>定义各个县/城市链接/文本的状态结束?
我正在玩这个,可以通过设置outerHtml()为a String然后手动解析字符串来实现,但我相信有一种更简单的方法可以做到这一点.我已经尝试过text()并尝试过attr("div.state_delimiter"),但我认为我正在弄乱模式/例程以正确地执行此操作.想知道是否有人可以帮我在这里,并告诉我如何将div.state_delimiter放入文本字段然后<ul><li></li></ul>我希望所有<li></li>下面的<ul></ul>每个州.希望尽可能简单地抓取http:// && html.
在<ul>包含城市的的下一个兄弟<div class="state_delimiter">.您可以使用Element#nextElementSibling()从该div中获取它.这是一个启动示例:
Document document = Jsoup.connect("http://www.craigslist.org/about/sites").get();
Elements countries = document.select("div.colmask");
for (Element country : countries) {
System.out.println("Country: " + country.select("h1.continent_header").text());
Elements states = country.select("div.state_delimiter");
for (Element state : states) {
System.out.println("\tState: " + state.text());
Elements cities = state.nextElementSibling().select("li");
for (Element city : cities) {
System.out.println("\t\tCity: " + city.text());
}
}
}
Run Code Online (Sandbox Code Playgroud)
该doc.select("div.state_delimiter,ul")不会做你想做的.它返回文档的所有 元素<div class="state_delimiter"> 和 <ul>元素.如果您已经掌握了HTML解析器,那么通过字符串函数手动解析它是没有意义的.
| 归档时间: |
|
| 查看次数: |
4109 次 |
| 最近记录: |