Scrapy XPath迭代(外壳工程)

时间:2019-03-13 19:42:26

标签: python scrapy

我正在尝试使用scrapy来从英国的公司搜集一些信息。 我通过外壳和他的命令与网站建立了联系

 scrapy shell https://beta.companieshouse.gov.uk/search?q=a

response.xpath('//*[@id="results"]').extract()

我设法得到了结果。

我试图将其放入程序中,以便将其导出到csv或json。但是我无法使其正常工作。.这就是我得到的;

import scrapy


class QuotesSpider(scrapy.Spider):
name = "gov2"

def start_requests(self):
    start_urls = ['https://beta.companieshouse.gov.uk/search?q=a']

def parse(self, response):
    products = response.xpath('//*[@id="results"]').extract()
    print(products)

非常简单,但是尝试了很多。任何见识将不胜感激!

2 个答案:

答案 0 :(得分:2)

这些代码行就是问题所在:

def start_requests(self):
    start_urls = ['https://beta.companieshouse.gov.uk/search?q=a']

start_requests方法应返回Request s的可迭代值;您的返回None

默认的start_requestsstart_urls中指定的网址创建此可迭代项,因此只需将其定义为类变量(在任何函数之外),而不覆盖start_requests即可按需工作

答案 1 :(得分:0)

尝试做:

import scrapy


class QuotesSpider(scrapy.Spider):

    name = "gov2"
    start_urls = ["https://beta.companieshouse.gov.uk/search?q=a"]

    def parse(self, response):
        products = response.xpath('//*[@id="results"]').extract()
        print(products)