gpt4 book ai didi

java - 使用 Jsoup 获取网站 - 页面 View 源和 Jsoup 显示不同的内容

转载 作者:行者123 更新时间:2023-11-30 03:46:30 24 4
gpt4 key购买 nike

我使用 Jsoup 来抓取网站:

doc = Jsoup.connect(String.valueOf(urls[0])).userAgent("Mozilla").get();    

这是链接:

http://www.yelp.com/search?find_desc=restaurant&find_loc=willowbrook%2C+IL&ns=1#l=p:IL:Willowbrook::&sortby=rating&rpp=40

我在命令行中的链接中添加了 rpp=40 参数以每页显示 40 个结果。我能够在页面 View 源中看到所有结果。我知道 Jsoup 仅用于静态内容,无法获取使用 AJAX/JS 库技术生成内容的网站。但是,为什么 Jsoup 无法通过页面 View 源检索与我在浏览器中看到的内容相同的内容?页面 View 源显示 40 个结果,而 Jsoup 只能从 10 个结果中检索元素?如何通过页面 View 源获取可见的每个元素。

最佳答案

简答 Jsoup 无法执行 Javascript。

长答案

http://www.yelp.com/search?find_desc=restaurant&find_loc=willowbrook%2C+IL&ns=1#l=p:IL:Willowbrook::&sortby=rating&rpp=40

您要查找的网页接受带有参数的Http Get。在普通浏览器中,它接受参数并加载页面。但是不检查 willowbrook(在您的示例中)。它在加载页面后加载 JS,Javascript 为 Fliters 搜索结果选中复选框。因此,当您使用 Jsoup 时,您会获得更多结果,因为它会加载“state=IL”而不会过滤“willowbrook”。

关于java - 使用 Jsoup 获取网站 - 页面 View 源和 Jsoup 显示不同的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14914498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com