如何在请求中获得深度嵌套的课程



我有一个脚本,该脚本使用请求来获取这样的html: r = session.get("https://www.instacart.com/store/wegmans/search_v3/horizon%201%25", headers=headers)

并深入该网页(大约26层深(是以下元素<span>$5.59</span>,我想刮擦。接下来的两个元素是<span class=""></span><div class="item-price" style="flex: 1 1 0%;"></div>,所以我的第一个想法是,如果我可以找到"项目优点"类,我可以再下两层,我尝试了此代码:

tree = html.fromstring(r.content)
result = tree.xpath("//div[@class='item-price']")

但是当我打印结果时,它只是显示一个空列表。我已经尝试了许多其他方法,我的理论是,我使用的XPath的方式并不比第一层要深,因为使用客观XPath,我指定的是body//div//etc sort工作。

有没有一种方法可以重复浏览所有元素以找到"项目价格"类,或者有更好的方法可以做到这一点?

Instacart的页面是动态生成的,requests未执行JavaScript。该项目列表在初始页面加载中不存在,仅通过JavaScript和Ajax添加。(您可以通过在页面上右键单击并选择"查看源"来检查此内容。(

实际数据是从另一个动态生成的URL加载的,该URL看起来像:

https://www.instacart.com/v3/retailers/42/module_data/dynamic_item_lists/delivery_promotion?list_ref=unilevermainstream0719&origin_source_type=department&scores=&tracking.page_view_id=7f55bb7a-00bf-4fa8-ac48-fd9e0f10cc59&source=web&cache_key=f90e09-7286-f-5bb&per=30

最新更新