python - 在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
解决方案
您的方法名称有错字:它应该是start_requests
而不是start_request
.
推荐阅读
- angular - 在 Nrwl/Nx 工作区中包含一些库的包
- python - 当 Ping 超时两次时重新启动程序
- php - 在 CodeIgniter 中显示长脚本执行期间的实时进度和任何错误
- excel - VBScript刷新特定文件夹中的所有excel文件
- html - Bootstrap 4网格布局定制
- android - 在 Android 清单中 android:name 显示错误 -- parse sdk android
- asp.net-mvc - Transport Tracker 以在 MVC Web 应用程序中的 Google 地图上跟踪公交车
- android - 使用 minifyEnabled true 来避免 multidex 禁用断点 - 如何修复?
- javascript - 页面速度见解:渲染阻止字体真棒
- php - 沃尔玛库存更新无法面对 400