Python 在scrapy中使用for循环从多个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

我想从多个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 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: