scrapy-redis

1.setting.py

DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"  # 将request转换为指纹
SCHEDULER = "scrapy_redis.scheduler.Scheduler"  # request调度器
SCHEDULER_PERSIST = True  # 是否持久化请求队列和指纹集合, 默认False(不持久化)

ITEM_PIPELINES = {
    'scrapy_redis.pipelines.RedisPipeline': 400,  # 将item写入redis
}
REDIS_URL = "redis://127.0.0.1:6379"

2.spider

from scrapy_redis.spiders import RedisSpider


class MySpider(RedisSpider):

    name = 'myspider_redis'
    redis_key = 'myspider:start_urls'
    allowed_domains = ['jd.com', 'p.3.cn']

    def parse(self, response):
        yield{
            'name': response.css('title::text').extract_first(),
            'url': response.url,
        }

3.注意事项

1)启动时,必须把全部分布式节点上的爬虫进程启动来,让其继续等待;
2) 再向redis中Push起始的url;

lpush myspider:start_urls ‘https://www.baidu.com’

3) 在抓取逻辑结束时,爬虫进程并不会自动结束,可以通过redis中指纹是否继续增加及请求队列状况判断是否抓取完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值