我正在尝试使用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页面:使用相同的用户代理在浏览器中运行搜索时,我得到以下HTML页面:
如您所见,来源有很大不同
如何在Java中以编程方式获取第二个源代码?
这似乎只是在复制HTML,但是缺少脚本和样式表。您需要检查HTML文档以找到那些文档,然后也下载它们,并将HTML中的链接更改为本地副本的位置。