Python 我如何刮<;李>;属于特定类的元素

Python 我如何刮<;李>;属于特定类的元素,python,scrapy,Python,Scrapy,我正试图在亚马逊网站上搜刮。这是我所指的产品页面的最后一页 我正试图抓取ul>li中的图像url,并进一步抓取页面左上角的span标记中的图像url 我需要的最终结果是所有图像缩略图的列表,但不是视频缩略图 下面的命令运行良好,并提供所有缩略图的所有URL response.xpath('*//div[@id="altImages"]/ul/li/span[@class="a-list-item"]/span/span/span/span/img/@src').extract() 上述命令的问

我正试图在亚马逊网站上搜刮。这是我所指的产品页面的最后一页

我正试图抓取ul>li中的图像url,并进一步抓取页面左上角的span标记中的图像url

我需要的最终结果是所有图像缩略图的列表,但不是视频缩略图

下面的命令运行良好,并提供所有缩略图的所有URL

response.xpath('*//div[@id="altImages"]/ul/li/span[@class="a-list-item"]/span/span/span/span/img/@src').extract()
上述命令的问题是,我无法区分图像是属于视频缩略图还是图像缩略图

为此,我使用以下命令获取属于图像的缩略图:

response.xpath('*//div[@id="altImages"]/ul/li[contains(@class,"imageThumbnail")]/span[@class="a-list-item"]/span/span/span/span/img/@src').extract()

``````````
and

``````````
response.xpath('*//div[@id="altImages"]/ul/li[@class="a-spacing-small item imageThumbnail a-declarative"]/span[@class="a-list-item"]/span/span/span/span/img/@src').extract()
class=“a-spacing-small item imageThumbnail a-declarative”应该只提供那些具有类“imageThumbnail”的元素。 但我得到的是一张空名单

我在输出中期望的只是属于“imageThumbnail”类的图像的URL,在我们的示例中,该类的数字应该只有5


下面是我得到的输出链接:

我建议您在这里使用
CSS
选择器,特别是因为您正在处理类。要拾取所有非视频缩略图,可以使用:

response.css('#altImages li.item:not(.videoblockingres)img::attr(src)').getall()
或者,如果希望仅获取视频拇指:

response.css('#altImages .videoBlockIngress img::attr(src)').getall()

上述代码工作正常。我尝试了另一种方法,通过不包括image类来只获取视频的url…代码如下:```` response.css(''.'altImages li.item:not(.image缩略图)img::attr(src)')。getall()```在这种情况下,我仍然可以获取图像元素的url。。。原因可能是什么。当然,
.imageThumbnail
是在页面加载后通过一些javascript代码添加的类。使用浏览器中的“查看页面源”快捷方式检查它是否存在。无论如何,我已经更新了答案。