使用Xpath提取值时scray中的空列表

2024-03-29 09:25:06 发布

您现在位置:Python中文网/ 问答频道 /正文

真的需要这个社区的帮助。在

我的问题是当我在python中使用代码时

response.xpath("//div[contains(@class,'check-prices-widget-not-sponsored')]/a/div[contains(@class,'check-prices-widget-not-sponsored-link')]").extract()

要在scrapy shell中提取供应商名称,输出为空。我真的不知道为什么会这样,在我看来,问题可能是网站信息在动态更新?在

这个web报废的url是:https://cruiseline.com/cruise/7-night-bahamas-florida-new-york-roundtrip-32860,我需要的是每个供应商的供应商名称和价格。除了所附图片是“检查”的截图。enter image description here

但是,类似的代码可以在下面的页面url('https://cruiseline.com/destination/caribbean/cruise/best?sort=rank,ship_status&&direction=desc&page=1&per_page=10&sailing_counts=0'中提取price)

^{pr2}$

非常感谢你的帮助!在


Tags: 代码httpsdiv名称comurlchecknot
1条回答
网友
1楼 · 发布于 2024-03-29 09:25:06

我在scrapy shell中尝试了这个url:https://cruiseline.com/cruise/7-night-bahamas-florida-new-york-roundtrip-32860,但是我也没有得到任何关于

response.xpath("//div[contains(@class,'check-prices-widget-not-sponsored')]/a/div[contains(@class,'check-prices-widget-not-sponsored-link')]").extract()

然后我使用view(response)命令来计算蜘蛛看到了什么,发现这个网站是动态的,这意味着如果你想在那个网站上获取信息,你需要执行显示信息的js代码。在

以下是截图:what your spider sees_1what your spider sees_2

如你所见,你需要的信息不会显示出来。但是,这个https://cruiseline.com/destination/caribbean/cruise/best?sort=rank,ship_status&&direction=desc&page=1&per_page=10&sailing_counts=0是静态的,所以这就是为什么您可以刮取您需要的内容。在

我有两种方法让你抓取动态网站(当然,还有更多):

1.飞溅(Official Doc): 在你的蜘蛛中,用SplashRequest而不是恶心。请求. 在

2.硒+幻影(Official Doc

祝你刮胡子好运!:)

相关问题 更多 >