如何使用 scrapy 计算父标签中的特定标签

问题描述 投票:0回答:1

在我尝试抓取的网站中,每个页面有 6 个表格,每个表格中的图像标签将重复 1 到 5 次,我想计算每个表格中图像标签出现的次数。

表由@data-trap标识; @data-trap = '1',@data-trap = '2',等等

下面是我尝试失败的代码示例:

for products in response.xpath('*//tbody//*'):
    if products.xpath('tbody [@data-trap = '1']/../@src').get() == '/greyhound-racing/img/icon/star-blue.png':
        s += 1

scrapy shell 中的错误信息为 > SyntaxError: invalid syntax。也许你忘记了逗号?

因此 s 应取 1 到 5 之间的值,具体取决于表。我哪里错了?

python scrapy
1个回答
0
投票

罪魁祸首是你在字符串中使用撇号。请看这里:

if products.xpath('tbody [@data-trap = '1']/../@src').get()

因为您仅使用

'
,所以
1
被排除在外。有两种选择:

  1. products.xpath("tbody [@data-trap = '1']/../@src").get() # Quotation marks

  2. products.xpath('tbody [@data-trap = \'1\']/../@src') # Escaping

© www.soinside.com 2019 - 2024. All rights reserved.