Jsoup 在某些站点上失败

Jsoup fails on certain sites

我正在尝试使用 jsoup 解析和操作 HTML。它对大多数 URL 都工作得很好,但对某些 URL 却失败了。例如

这个有效:

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();

我哪里出错了?

谢谢。

似乎在第二个例子中你得到了一个简短的 HTML 返回,除了一些 JavaScript 之外什么都没有。所以让页面工作正常。问题可能是 JavaScript 没有执行,这超出了 JSoup 的范围,因为 Jsoup 无法执行 JavaScript。

为此,您需要一种不同的方法,例如Selenium Webdriver 或 HTMLUnit.

页面正常 HTML。我不知道如何解释,但是如果您将请求更改为 POST 请求,您将得到您想要的,即使我的浏览器 (Firefox) 获取带有 GET 的页面请求。
我尝试添加浏览器发送的所有 pther headers - HOSTACCEPT 等,但仅将请求更改为 POST 就完成了工作。