簡體   English   中英

使用JSOUP的Web搜尋器-無法獲取自定義標簽

[英]Web crawler using JSOUP- cannot fetch custom tags

我正在嘗試使用JSOUP構建Web搜尋器。 問題是,盡管它可用於其他頁面,但無法抓取Swiggy數據。 我認為這是由於存在自定義標簽restaurant-menu 我這樣做:

Document document = Jsoup.connect(url).get();
Elements document_body = document.select(".layout-wrapper");
System.out.println(document_body.html());

在輸出中,我得到以下信息:

<div class="restaurant-menu-container"> <restaurant-menu></restaurant-menu> </div>

restaurant-menu標簽為空,而如果您訪問該網站並檢查其內容,則全部數據將顯示在restaurant-menu標簽中:

是由於自定義標簽還是其他原因?

讀取restaurant-menu的內容很簡單:

document.select("div.restaurant-menu-container.restaurant-menu")

但是...當您使用JSoup時(就像瀏覽頁面和查看源代碼一樣),您會發現沒有任何內容。 這是因為JSoup解析靜態HTML內容,並且div.restaurant-menu-container.restaurant-menu是動態創建的。

JSoup無法解析動態內容,如果要以編程方式提取動態內容,則可能需要查看Selenium之類的內容

這是說明如何使用StormCrawler + Selenium進行爬網的教程 SC在引擎蓋下使用Jsoup來解析HTML文檔,您可以編寫基於XPath的提取規則,也可以通過NavigationFilters動態地與頁面進行交互。

暫無
暫無

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

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