获取网页的完整呈现的源代码

问题描述 投票:0回答:1

我正在尝试使用Google搜索创建程序,并从源代码中提取元素的某些部分。

这些元素在我使用浏览器时存在,而在使用Java代码时不存在。

[与其他程序员朋友交谈时,很明显页面的某些部分是“惰性内容”,并且在通过各种脚本加载页面之后才被加载。

唯一的问题是“惰性内容”正是我想要的部分。

我正在寻找解决方案,但没有找到有效的方法。在网站的所有部分均已加载并且所有脚本均已执行并在此完成后,我想获取该网站的HTML源。

使用此代码时:

String userInput="Lemon Bars";
String google = "http://www.google.com/search?q=";
Connection.Response response =Jsoup.connect(google+userInput)
          .ignoreContentType(true)
          .userAgent("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36")
          .referrer("http://www.google.com")
          .timeout(12000)
          .followRedirects(true)
          .execute();
Document doc = response.parse();

我得到了这个HTML页面:Web page without all elements loaded使用相同的用户代理在浏览器中运行搜索时,我得到以下HTML页面:Web page with all elements loaded

如您所见,来源有很大不同

如何在Java中以编程方式获取第二个源代码?

java google-api lazy-loading
1个回答
0
投票

这似乎只是在复制HTML,但是缺少脚本和样式表。您需要检查HTML文档以找到那些文档,然后也下载它们,并将HTML中的链接更改为本地副本的位置。

© www.soinside.com 2019 - 2024. All rights reserved.