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 - HOST
、ACCEPT
等,但仅将请求更改为 POST
就完成了工作。
我正在尝试使用 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 - HOST
、ACCEPT
等,但仅将请求更改为 POST
就完成了工作。