栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

如何编写分布式爬虫

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何编写分布式爬虫

一、更改父类为redis的类

1、将爬虫的类从scrapy.Spider变成scrapy_redis.spiders.RedisSpider;

2、或者是从scrapy.CrawlSpider变成scrapy_redis.spiders.RedisCrawlSpider。

from scrapy_redis.spiders import  RedisCrawlSpider

以Crawlspider为例:

二、调整起始url

 1.将爬虫中的start_urls删掉。

2.增加一个redis_key="xxx"。这个redis_key是为了以后在redis中控制爬虫启动的。爬虫的第一个url,就是在redis中通过这个发送出去的。

以Crawlspider为例:

redis_key = "dytt:start_url"

 三、调整配置文件
# Scrapy-Redis相关配置
# 利用scrapy_redis的调度确保request存储到redis中,起到中间商的作用
# 【无需修改】
SCHEDULER = "scrapy_redis.scheduler.Scheduler"

# 确保所有爬虫共享相同的去重指纹,保证所有数据去重使用
# 【无需修改】
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"

# 设置redis为item pipeline,不再使用scrapy自带的pipeline
# 【无需修改】
ITEM_PIPELINES = {
    'scrapy_redis.pipelines.RedisPipeline': 300
}

# 在redis中保持scrapy-redis用到的队列,不会清理redis中的队列,从而可以实现暂停和恢复的功能。
# 【最好保持开启,无需修改】
SCHEDULER_PERSIST = True

# 设置连接redis信息:
# REDIS_HOST:Redis服务器的ip,根据自己启动的redis服务器的ip【自行修改】
# REDIS_PORT:Redis服务器的端口,默认6379 【不要修改,且无需修改】
REDIS_HOST = '192.168.0.108'
REDIS_PORT = 6379
四、启动分布式爬虫

1.启动Redis服务器

redis-server.exe redis.windows.conf

2、启动scrapy-redis爬虫

进入爬虫文件所在的路径,然后输入命令:scrapy runspider [爬虫名字]。

举例:

scrapy runspider dytt2_.py

3.打开一个redis客户端,lpush起始url

redis-cli
lpush [redis_key] start_url

举例:

# 启动redis客户端
redis-cli

# lpush起始url
lpush dytt:start_url https://dytt8.net/html/gndy/dyzz/list_23_1.html

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/329814.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号