我在项目中使用jsoup,但是我发现有时以下说明无法获取该文档:

 Document document = Jsoup.connect(url).timeout(30000).get();


奇怪的是,使用浏览器,我可以在不到2秒的时间内打开url,而jsoup却存在此问题。另一个奇怪的是,在大多数情况下,jsoup都能很好地工作。

怎么了?

最佳答案

一些网站会查看连接浏览器的用户代理字符串,以确定要传递的内容。 Jsoup发送的用户代理可能不够清楚。所以我的建议是像这样使用用户代理:

Document document = Jsoup.connect(url)
   .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6")
   .timeout(30000)
   .get();


另一种可能性是Web服务器需要正确设置一些cookie。您需要查看浏览器和网站之间的确切流量,以了解更多信息。 (在浏览器开发模式下使用“网络”选项卡)

如果没有提供给您问题的URL,我担心这是我所能提供的所有建议。

07-25 22:32
查看更多