在我尝试抓取的网站中,每个页面有 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 之间的值,具体取决于表。我哪里错了?
罪魁祸首是你在字符串中使用撇号。请看这里:
if products.xpath('tbody [@data-trap = '1']/../@src').get()
因为您仅使用
'
,所以 1
被排除在外。有两种选择:
products.xpath("tbody [@data-trap = '1']/../@src").get() # Quotation marks
products.xpath('tbody [@data-trap = \'1\']/../@src') # Escaping