增量式
概念:监测网站数据更新的情况,以便于爬取到最新更新出来的数据
- 实现核心:去重
- 实战中去重的方式:记录表
- 记录表需要记录的是爬取过的相关数据
- 爬取过的相关信息:url,标题,等唯一标识(我们使用每一部电影详情页的url作为标识)
- 只需要使用某一组数据,改组数据如果可以作为网站唯一标识信息即可,只要可以表示网站内容中唯一标识的数据我们统称为 数据指纹。
- 记录表需要记录的是爬取过的相关数据
- 去重的方式对应的记录表:
- python中的set集合(不可行)
- set集合无法持久化存储
- redis中的set集合就可以
- 因为可以持久化存储
- python中的set集合(不可行)
实现流程
创建工程
创建一个爬虫工程:scrapy startproject proName
进入工程创建一个基于CrawlSpider的爬虫文件
scrapy genspider -t crawl spiderName www.xxx.com
执行工程:scrapy crawl spiderName
启动redis服务端
启动redis客户端
我们插入一个gemoumou set显示1 再次插入显示为0 说明无法插入
zls.py (爬虫源文件)
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from redis import Redis
from zlsPro.items import ZlsproItem
class ZlsSpider(CrawlSpider):
name = 'zls'
#allowed_domains = ['www.xxx.com']
start_urls = ['https://www.4567kan.com/index.php/vod/show/class/%E5%8A%A8%E4%BD%9C/id/1.html']
conn = Redis(host="127.0.0.1",port=6379) # 链接redis服务器
rules = (
Rule(LinkExtractor(allow=r'page/\d+\.html'), callback='parse_item', follow=False),# 页码链接
)
d