scrapy多个爬虫同时运行

运行爬虫

import  datetime as dt
#同时爬取
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
file_name_A="爬虫A"+dt.datetime.now().strftime('%Y-%m-%d') +".json"
file_name_B="爬虫B"+dt.datetime.now().strftime('%Y-%m-%d') +".json"

settings = get_project_settings()
crawler = CrawlerProcess(settings)
#参数 输出结果文件
spargs_A ={'-o':file_name_A}
spargs_B ={'-o':file_name_B}
crawler.crawl('爬虫A',spargs_A )
crawler.crawl('爬虫B',spargs_B )

crawler.start()
crawler.start()

爬虫运行参数
在这里插入图片描述

不同爬虫设置不同的pipeline

方法1

class CrawlersPipeline:
    def process_item(self, item, spider):
        if spider.name in ['爬虫A','爬虫B'] :
            return item

方法2 用custom_setting配置。

ITEM_PIPELINES = {
    'medicine_crawlers.pipelines.ACrawlersPipeline': 300,
    'medicine_crawlers.pipelines.BCrawlersPipeline': 300,
}

爬虫A的spider文件里

class longyi_spider(scrapy.Spider):
    name = '***'
    allowed_domains = ['***.com']
    start_urls = ['***']
    custom_settings={
    'ITEM_PIPELINES':{medicine_crawlers.pipelines.ACrawlersPipeline}
    } 

爬虫B格式同上

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Scrapy 内置了多线程支持。默认情况下,Scrapy 使用单线程来执行爬虫,但是可以通过修改 `CONCURRENT_REQUESTS` 和 `CONCURRENT_REQUESTS_PER_DOMAIN` 等设置来启用多线程支持。 具体来说,可以使用以下步骤启用多线程支持: 1. 在 `settings.py` 文件中设置 `CONCURRENT_REQUESTS` 和 `CONCURRENT_REQUESTS_PER_DOMAIN`。例如,可以将 `CONCURRENT_REQUESTS` 设置为 16,将 `CONCURRENT_REQUESTS_PER_DOMAIN` 设置为 8,表示同时最多有 16 个请求在运行,并且每个域名同时最多有 8 个请求在运行。 ``` CONCURRENT_REQUESTS = 16 CONCURRENT_REQUESTS_PER_DOMAIN = 8 ``` 2. 修改 Spider,使其能够支持多线程。可以通过设置 `custom_settings` 属性来实现。例如,可以设置 `DOWNLOAD_DELAY` 为 0,这将禁用爬虫的下载延迟,使其更加适合多线程。 ``` class MySpider(scrapy.Spider): name = 'myspider' start_urls = ['http://example.com'] custom_settings = { 'DOWNLOAD_DELAY': 0, } def parse(self, response): # parse the response ``` 3. 运行爬虫时,使用 `-s CONCURRENT_REQUESTS=n` 选项来设置同时运行的请求数量。例如,可以使用以下命令来启动一个同时最多有 32 个请求在运行爬虫: ``` scrapy crawl myspider -s CONCURRENT_REQUESTS=32 ``` 使用多线程爬虫可以提高爬取效率,但也需要注意避免对目标网站造成太大的负担。同时,多线程爬虫可能会导致一些不可预知的问题,例如网站反爬虫机制可能会误判为攻击行为。因此,在使用多线程爬虫时,需要谨慎考虑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值