[英]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.