Python 在scrapy中使用for循环从多个URL中刮取信息
我想从多个URL中抓取信息。我使用下面的代码,但它不起作用。有人能告诉我哪里出了问题吗Python 在scrapy中使用for循环从多个URL中刮取信息,python,scrapy,web-crawler,amazon,scrapy-spider,Python,Scrapy,Web Crawler,Amazon,Scrapy Spider,我想从多个URL中抓取信息。我使用下面的代码,但它不起作用。有人能告诉我哪里出了问题吗 import scrapy class spider1(scrapy.Spider): name = "spider1" domain = "http://www.amazon.com/dp/" ASIN = ['B01LA6171I', 'B00OUKHTLO','B00B7LUVZK'] def start_request(self): for i in
import scrapy
class spider1(scrapy.Spider):
name = "spider1"
domain = "http://www.amazon.com/dp/"
ASIN = ['B01LA6171I', 'B00OUKHTLO','B00B7LUVZK']
def start_request(self):
for i in ASIN:
yield scrapy.Request(url=domain+i,callback = self.parse)
def parse(self, response):
title =response.css("span#productTitle::text").extract_first().strip()
ASIN_ext = response.xpath("//input[@name='ASIN']/@value").extract_first()
data = {"ASIN":ASIN_ext,"title":title,}
yield data
您只需要在第一个函数中添加一个“s”
def start_requests(self):
细微的差别,但Scrapy会寻找特定的函数,因此它必须完美匹配。您只需在第一个函数中添加一个“s”
def start_requests(self):
细微的差别,但Scrapy会寻找特定的函数,因此它必须完全匹配。请解释您得到了什么错误?日志中没有显示任何错误。但是只是说0个页面被爬网了。请解释你得到了什么错误?日志没有显示任何错误。但只是说0页被爬网了。谢谢!如果我将'domain'和'ASIN'变量移动到start_requests()块中,它就会工作。我是python和scrapy的新手。我可以如何使这两个变量对类中定义的所有函数都是可访问的吗?在您的情况下,在引用它们时,只需在它们前面加上类名即可。您定义它们的方式很好,但是当您转到引用时,它将是spider1.domain和spider1.ASIN。查看此处以了解有关类和对象变量之间的差异的更多信息:@user45857,可以使用类方法中作为第一个参数传递的
self
对象访问类属性,例如def start\u request(self):for i in self。ASIN:
谢谢!如果我将'domain'和'ASIN'变量移动到start_requests()块中,它就会工作。我是python和scrapy的新手。我可以如何使这两个变量对类中定义的所有函数都是可访问的吗?在您的情况下,在引用它们时,只需在它们前面加上类名即可。您定义它们的方式很好,但是当您转到引用时,它将是spider1.domain和spider1.ASIN。查看此处以了解有关类和对象变量之间差异的更多信息:@user45857,可以使用类方法中作为第一个参数传递的self
对象访问类属性,例如def start\u request(self):for i in self.ASIN: