使用scrapy中的for循环从多个URL中抓取信息

时间:2017-04-21 06:30:52

标签: python scrapy web-crawler amazon scrapy-spider

我想从多个网址抓取信息。我使用以下代码但它不起作用。愿有人请我指出我出错的地方吗?

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

1 个答案:

答案 0 :(得分:5)

你只需添加一个'到第一个功能

def start_requests(self):

细微差别,但Scrapy会寻找特定的功能,因此它必须完美匹配。