如何像浏览器一样HTTP-GET HTML?

时间:2018-03-04 14:38:35

标签: html apache http jsoup http-get

TL; DR;

我想知道Apache HttpClientJsoup做了哪些不同的事情,特别是如何实现这一点,以便接收HTML页面(在这种情况下为google.com就像浏览器一样。

问题

当我在浏览器中执行a Google search时,它看起来像这样:

Browser screenshot

这显然是预期的行为。 使用Apache HttpClientJsoup我得到非常相似的结果,如下所示:

Jsoup screenshot

正是我想要的 ,因为包含响应中的所有内容

在我的 HTTP-GET 请求中,我收到了这个:

HTTP-GET screenshot

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 ...

他们没有改变任何东西。

2 个答案:

答案 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