我正在尝试使用 JSOUP 构建网络爬虫。问题是,虽然它适用于其他页面,但无法抓取 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 的内容。 .