首页 > 解决方案 > 在scrapy中使用for循环的多个url

问题描述

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

标签: pythonloopsurlscrapy

解决方案


您的方法名称有错字:它应该是start_requests而不是start_request.


推荐阅读