python - CrawlerProcess / 不带任何物品 / Scrapy
问题描述
我根据scrapy文档做了一个非常简单的尝试,让蜘蛛使用CrawlerProcess从单个文件运行。这是代码:
import scrapy
from scrapy.crawler import CrawlerProcess
class BaseSpider(scrapy.Spider):
def common_parse(self, response):
yield {
'test': response.css("title::text").extract()
}
class MonoprixSpider(BaseSpider):
# Your first spider definition
name = "monoprix_bot"
start_url = ['https://www.monoprix.fr/courses-en-ligne']
def parse(self, response):
self.common_parse(response)
class EbaySpider(BaseSpider):
# Your second spider definition
name = "ebay_bot"
start_url = ['https://www.ebay.fr/']
def parse(self, response):
self.common_parse(response)
process = CrawlerProcess()
process.crawl(MonoprixSpider)
process.crawl(EbaySpider)
process.start() # the script will block here until all crawling jobs are finished
两个蜘蛛都在不产生页面标题的情况下打开和关闭(作为测试)。我之前将更复杂的 Ebay 和 Monoprix 蜘蛛放到了两个不同的项目中,而且效果很好……
我错过了一些明显的东西吗?
解决方案
请将start_url更改为start_urls。
如在
start_urls = ['https://www.monoprix.fr/courses-en-ligne']
由于没有 start_urls,基本上你将蜘蛛播种为空。
推荐阅读
- javascript - 显示二维数组中的坐标
- .net - 组装时制作非托管类型 ComVisible(true):ComVisible(false)
- go - 合并两个结构(相同类型)?
- multithreading - 线程支持如何在操作系统 High Sierra 中工作?
- cordova - Ionic 3 - 应用程序在初始屏幕上挂起(可能与 Ionic Deploy 有关)
- postgresql - Postgres - 更大的数据库总是会变慢吗?
- azure - 如果在 Azure 上创建 VM 时发生错误,我在哪里可以找到错误日志
- mysql - 如何编写一个自联接,其中包含可能并不总是存在的条件的行
- java - 在底部导航器上旋转处理,在片段上导航
- javascript - 循环播放视频,在前一个结束之前一个接一个