我想知道Apache HttpClient和Jsoup做了哪些不同的事情,特别是如何实现这一点,以便接收HTML页面(在这种情况下为google.com)就像浏览器一样。
当我在浏览器中执行a Google search时,它看起来像这样:
这显然是预期的行为。 使用Apache HttpClient或Jsoup我得到非常相似的结果,如下所示:
正是我想要的 ,因为包含响应中的所有内容。
在我的 HTTP-GET 请求中,我收到了这个:
HTML-text 缺少内容。
我想了解有关结果的所有信息,正如您在上一张图片中看到的那样,甚至没有结果网址。
我尝试添加这些标题:
Accept
text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding
gzip, deflate, br
User-Agent
Mozilla/5.0 ...
他们没有改变任何东西。
答案 0 :(得分:0)
Jsoup只能下载静态html网页。一些数据由网页上显示的javascript加载,由浏览器执行。这些脚本的某些部分可能会以异步方式从不同的URL加载。
要获取此内容,您应该使用HtmlUnit或Selenium等工具。
答案 1 :(得分:0)
我认为标题是要走的路。我确信这只是我的Kotlin HTTP库的一个问题。
Accept
text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8
Accept-Encoding
gzip, deflate, br
User-Agent
Mozilla/5.0