我正在尝试使用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)
非常简单,但是尝试了很多。任何见识将不胜感激!
答案 0 :(得分:2)
这些代码行就是问题所在:
def start_requests(self):
start_urls = ['https://beta.companieshouse.gov.uk/search?q=a']
start_requests
方法应返回Request
s的可迭代值;您的返回None
。
默认的start_requests
从start_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)