KNU*_*KNU 1 html java web-scraping jsoup
我如何使用Jsoup 分别从每个行提取本网站的规范数据,例如网络 - >网络类型,电池等.
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class mobilereviews {
public static void main(String[] args) throws Exception {
Document doc = Jsoup.connect("http://mobilereviews.net/details-for-Motorola%20L7.htm").get();
for (Element table : doc.select("table")) {
for (Element row : table.select("tr")) {
Elements tds = row.select("td");
System.out.println(tds.get(0).text());
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是尝试找到问题的解决方案
Document doc = Jsoup.connect("http://mobilereviews.net/details-for-Motorola%20L7.htm").get();
for (Element table : doc.select("table[id=phone_details]")) {
for (Element row : table.select("tr:gt(2)")) {
Elements tds = row.select("td:not([rowspan])");
System.out.println(tds.get(0).text() + "->" + tds.get(1).text());
}
}
Run Code Online (Sandbox Code Playgroud)
解析HTML非常棘手,如果HTML发生更改,您的代码也需要更改.
您需要首先研究HTML标记以提出解析规则.
table[id=phone_details]tr:gt(2)td:not([rowspan])有关选择器语法中更复杂的选项,请查看http://jsoup.org/cookbook/extracting-data/selector-syntax