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

myss37ts  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(151)

在一个网站,我试图刮,每个页面有6个表,并在每个表的图像标签将重复1至5次之间,我想计算多少次图像标 checkout 现在每个表。
这些表格由@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:无效语法。也许你忘了一个逗号?
因此,s应该取1到5之间的值,具体取决于表。我哪里做错了?

ia2d9nvy

ia2d9nvy1#

罪魁祸首是你在字符串中使用了撇号。请参阅此处:
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

相关问题