我正在尝试https://www.iso.org/members.html中的表格。
下面是我的脚本:
import scrapy
class MemSpider(scrapy.Spider):
name = 'mem'
def start_requests(self):
yield scrapy.Request(url='https://www.iso.org/members.html', callback=self.parse)
def parse(self, response):
for tr in response.selector.xpath('//tbody/tr'):
country = tr.xpath('./td[1]/text()').extract_first()
nsb_link = response.urljoin(tr.xpath('./td[2]/a/@href').extract_first())
nsb_initials = tr.xpath('./td[2]/a/text()').extract_first()
membership = tr.xpath('./td[3]/text()').extract_first()
tc_particiption = tr.xpath('./tr/td[4]/text()').extract_first()
pdc_participation = tr.xpath('./tr/td[5]/text()').extract_first()
print(country,nsb_initials,membership,tc_particiption,pdc_participation,nsb_link)
但是,对于tc_particiption和pdc_participation可变项,打印功能会给出“ None”作为输出。我感觉可能是由于XPath表达式引起的,但我不知道该如何处理。
请查看是否可以提供帮助。我正在尝试将OBEY Robots设置为false的建议,但是它不起作用。
答案 0 :(得分:1)
您有输入错误(无需在XPath中使用tr
)
tc_particiption = tr.xpath('./td[4]/text()').extract_first()
pdc_participation = tr.xpath('./td[5]/text()').extract_first()