从亚马逊网站获取href链接的问题。 xpath找到比预期更多的href链接。

时间:2018-01-27 17:14:17

标签: python html xpath web-scraping scrapy

我试图从下面的亚马逊网站收集每个视频的所有网址。

https://www.amazon.com/video-Prime/s?ie=UTF8&page=1&rh=n%3A2858778011%2Ck%3Avideo

我使用scrapy shell交互式测试我的代码。 我开始像下面的scrapy shell。我

scrapy shell 'https://www.amazon.com/s/ref=nb_sb_noss_1?url=search-alias%3Dinstant-video&field-keywords=video&rh=n%3A2858778011%2Ck%3Avideo'

我的回复状态是200.然后在scrapy shell中,我尝试使用xpath选择器提取所有视频网址,如下所示:

response.xpath("//ul[contains(@id, 's-results-list-atf')]/li//a/@href").extract()   

我得到了比预期更多的href链接。当我检查网页HTML时,这没有意义。该页面上有十个视频,每个视频只有一个href链接。我不明白为什么会这样。如果有人能提供帮助,我感激不尽。非常感谢提前。

2 个答案:

答案 0 :(得分:1)

尝试以下XPath仅匹配必需的链接

//ul[@id="s-results-list-atf"]//a[h2]/@href

答案 1 :(得分:0)

  

该页面上有十个视频,每个视频只有一个href链接。

您确定要查看正确的页面吗? 这是我在该页面上看到的第一个结果的屏幕截图,其中边框添加了边框。

Arrival

如您所见,此特定项目总共有9个链接。

看起来你必须使你的xpath更具体,所以它只捕获你想要的链接。