簡體   English   中英

使用Jsoup獲取網站-頁面視圖源和Jsoup顯示不同的內容

[英]Fetching the website with Jsoup - page view source and Jsoup shows different content

我使用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個結果。 我可以在頁面視圖源中查看所有結果。 我知道Jsoup僅用於靜態內容,無法獲取使用AJAX / JS庫技術生成內容的網站。 但是,為什么Jsoup無法檢索與通過頁面視圖源在瀏覽器中看到的內容相同的內容? 頁面視圖源顯示40個結果,而Jsoup只能從10個結果中檢索元素? 如何獲得通過頁面視圖源可見的每個元素。

簡短答案 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”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM