无法使用 Jsoup 获取完整网页源
Unable to get full webpage source with Jsoup
我使用了Jsoup库来获取这个网页的源代码:
url="http://ww3.365planetwinall.net/Sport/OddsAsync.aspx?EventID=257612"
我使用了下面的代码,但是返回的源代码缺少很多div。我在没有 userAgent 的情况下尝试过,但我得到了同样的结果。
doc =Jsoup.connect("http://ww3.365planetwinall.net/Sport/OddsAsync.aspx?EventID=257612")
.userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
.referrer("http://www.google.com")
.get();
String html=doc.toString();
System.out.println(html);
您尝试访问的 URL 可能通过 JavaScript 呈现其内容。 Jsoup 不能处理那个,所以你运气不好。我看到两个选项供您选择:
使用 selenium webdriver 而不是 Jsoup。这个遥控器控制一个真正的浏览器,它可以 运行 JavaScript 并按照您的预期呈现所有页面内容。此解决方案速度很慢,但可以帮助您。
通过“浏览器网络”选项卡识别 AJAX 调用此页面并直接通过 Jsoup 加载这些资源。通常内容不是 HTML 而是 JSON 甚至其他格式。您需要花一些时间了解发生了什么,但作为奖励,您仍然可以使用 Jsoup 来获取应该比 selenium 快得多的页面。
我使用了Jsoup库来获取这个网页的源代码:
url="http://ww3.365planetwinall.net/Sport/OddsAsync.aspx?EventID=257612"
我使用了下面的代码,但是返回的源代码缺少很多div。我在没有 userAgent 的情况下尝试过,但我得到了同样的结果。
doc =Jsoup.connect("http://ww3.365planetwinall.net/Sport/OddsAsync.aspx?EventID=257612")
.userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
.referrer("http://www.google.com")
.get();
String html=doc.toString();
System.out.println(html);
您尝试访问的 URL 可能通过 JavaScript 呈现其内容。 Jsoup 不能处理那个,所以你运气不好。我看到两个选项供您选择:
使用 selenium webdriver 而不是 Jsoup。这个遥控器控制一个真正的浏览器,它可以 运行 JavaScript 并按照您的预期呈现所有页面内容。此解决方案速度很慢,但可以帮助您。
通过“浏览器网络”选项卡识别 AJAX 调用此页面并直接通过 Jsoup 加载这些资源。通常内容不是 HTML 而是 JSON 甚至其他格式。您需要花一些时间了解发生了什么,但作为奖励,您仍然可以使用 Jsoup 来获取应该比 selenium 快得多的页面。