我正在尝试使用jsoup解析和操作HTML。它对大多数URL工作得很好,但有些失败了。 e.g。
这有效:
Document document = Jsoup.connect("https://www.yahoo.com/politics/time-to-take-sanders-seriously-1342599418519606.html")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11 Firefox/19.0")
.timeout(10*1000)
.get();
这失败了:
Document document = Jsoup.connect("http://www.sciencedaily.com/releases/2016/02/160201215944.htm")
.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11 Firefox/19.0")
.timeout(10*1000)
.get();
我哪里可能出错?
感谢。
答案 0 :(得分:1)
在第二个例子中,你似乎得到了一个简短的HTML,除了一些JavaScript之外没什么。所以让页面工作得很好。问题可能是JavaScript没有被执行,这超出了JSoup的范围,因为Jsoup无法执行JavaScript。
为此你需要一种不同的方法,例如Selenium Webdriver或HTMLUnit。
答案 1 :(得分:1)
该网页是常规HTML
。我不知道如何解释它,但如果您将请求更改为POST
请求,即使我的浏览器(Firefox)获得了{GET
请求,您也会得到您想要的内容{1}}请求
我已尝试添加浏览器发送的所有pther标头 - HOST
,ACCEPT
等,但只是将requet更改为POST
才能完成此任务。