直接跟大家说我们需要在python分布式爬虫中使用redis,会不知道是做什么用的。那我们换一种说法,都知道信息通讯是需要一定的载体支持的,redis就承担着载体的功能。这样解释有点小伙伴就可以理解了,但还是对概念有一点模糊。没搞明白的小伙伴不要着急,接下来跟小编一起进入今天的redis学习。
利用redis做分布式系统,最经典的就是scrapy-Redis,这是比较成熟的框架。同时我们也可以利用Redis的队列功能或者订阅发布功能来打造自己的分布式系统。
Redis作为通信载体的优点是读写迅速,对爬虫的速度影响可忽略不计,使用比较普遍。
主程序示例:
import scrapy from scrapy.http import Request from scrapy.selector import HtmlXPathSelector from scrapy.dupefilter import RFPDupeFilter from scrapy.core.scheduler import Scheduler import redis from ..items import XiaobaiItem from scrapy_redis.spiders import RedisSpider class RenjianSpider(RedisSpider): name = 'baidu' allowed_domains = ['baidu.com'] def parse(self, response): news_list = response.xpath('//*[@id="content-list"]/div[@class="item"]') for news in news_list: content = response.xpath('.//div[@class="part1"]/a/text()').extract_first().strip() url = response.xpath('.//div[@class="part1"]/a/@href').extract_first() yield XiaobaiItem(url=url,content=content) yield Request(url='http://dig..com/',callback=self.parse)
相信经过本篇对于redis的学习,我们已经掌握了python分布式爬虫的一个构建方法,其它的方法小编会在后续中更新,小伙伴们记得关注下。更多Python学习指路:PyThon学习网教学中心。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)