Scrapy-变得“无”

时间:2019-11-22 06:06:54

标签: python web-scraping scrapy

我正在尝试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的建议,但是它不起作用。

1 个答案:

答案 0 :(得分:1)

您有输入错误(无需在XPath中使用tr

tc_particiption = tr.xpath('./td[4]/text()').extract_first()
pdc_participation = tr.xpath('./td[5]/text()').extract_first()