借助redis的set实现增量式爬虫。增量式意思就是监测网站数据更新情况,爬取最新更新出来的数据,核心就是去重。这里我们只通过redis的set集合来实现。
实现增量:
—-对爬取数据的url进行监测,使用一个记录表存储爬取过的数据的url,但凡记录表中存有的url,说明url对应数据已经爬取过了,否则表示没有爬取过为新数据。
—-记录表:
redis的set集合充当记录表,自带去重功能。
插入成功为会返回1,失败输入的数据已经存在,返回0。
以:https://www.4567kan.com/frim/index1.html 这个网站作为演示,主要学习如何实现增量式,数据暂且先不考虑。这里通过CrawlSpider进行翻页,详情页数据使用parse_detail方法来处理。把详情页的url存放到记录表,也就是redis的set集合中去:
# -*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from redis import StrictRedis
class MeiziSpider(CrawlSpider):
name = 'meizi'
start_urls = ['https://www.4567kan.com/frim/index1.html']
# 创建reids链接对象
client=StrictRedis(host='127.0.0.1',port