23-爬虫之scrapy框架增量式实时监测数据爬取10

本文介绍了如何利用scrapy框架实现增量式爬虫,重点在于数据去重,通过记录爬取过的url作为数据指纹,使用redis的set集合进行持久化存储以达到去重目的。详细步骤包括创建scrapy工程,编写爬虫源文件,配置items和pipelines,以及启动redis服务。实操中发现由于4个电影详情页无法打开,导致结果缺少4个条目。
摘要由CSDN通过智能技术生成

增量式

概念:监测网站数据更新的情况,以便于爬取到最新更新出来的数据

  • 实现核心:去重
  • 实战中去重的方式:记录表
    • 记录表需要记录的是爬取过的相关数据
      • 爬取过的相关信息:url,标题,等唯一标识(我们使用每一部电影详情页的url作为标识)
      • 只需要使用某一组数据,改组数据如果可以作为网站唯一标识信息即可,只要可以表示网站内容中唯一标识的数据我们统称为 数据指纹。
  • 去重的方式对应的记录表:
    • python中的set集合(不可行)
      • set集合无法持久化存储
    • redis中的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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值