我试图从这个网站抓取数据:http://www.bundesliga.de/de/liga/tabelle/
在源代码中我可以看到表格,但没有内容,只有:
<td>[no content]</td>
<td>[no content]</td>
<td>[no content]</td>
<td>[no content]</td>
....
使用firebug(Firefox中的F12)我也不会看到任何内容,但我可以选择表格,然后通过firebug选项复制innerHTML。在那种情况下,我得到了关于团队的所有信息,但我不知道如何获得Jsoup中的内容表。
答案 0 :(得分:6)
要获取属性的值,请使用Node.attr(String key)方法 对于元素(及其组合子元素)上的文本,请使用Element.text() 对于HTML,请根据需要使用Element.html()或Node.outerHtml() 例如:
String html = "<p>An <a href='http://example.com/'><b>example</b></a> link.</p>";
Document doc = Jsoup.parse(html);
Element link = doc.select("a").first();
String text = doc.body().text(); // "An example link"
String linkHref = link.attr("href"); // "http://example.com/"
String linkText = link.text(); // "example""
String linkOuterH = link.outerHtml();
// "<a href="http://example.com"><b>example</b></a>"
String linkInnerH = link.html(); // "<b>example</b>"
参考: http://jsoup.org/cookbook/extracting-data/attributes-text-html
答案 1 :(得分:2)
该表不是直接在服务器上呈现,而是由页面的客户端JavaScript构建,并使用通过AJAX到达客户端的数据构建。所以你应该用天真的Jsoup方法得到什么。
我看到两种可能的解决方案:
两种选择都有其优势:
也许你在足球桌上找到了另一个持有你想要的信息的来源?这可能是最简单的。例如http://www.fussballdaten.de/bundesliga/