首页 > 解决方案 > 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 蜘蛛放到了两个不同的项目中,而且效果很好……

我错过了一些明显的东西吗?

标签: pythonscrapyweb-crawler

解决方案


请将start_url更改为start_urls

如在

start_urls = ['https://www.monoprix.fr/courses-en-ligne']

由于没有 start_urls,基本上你将蜘蛛播种为空。


推荐阅读