我正在尝试使用 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 的内容。 .


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!