[英]Fetching the website with Jsoup - page view source and Jsoup shows different content
我使用Jsoup抓取該網站:
doc = Jsoup.connect(String.valueOf(urls[0])).userAgent("Mozilla").get();
鏈接在這里:
我在命令行的鏈接中添加了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.