第六周——爬虫入门 Day5 8.5

学习时间:9:00——11:00       14:30—16:30
CrawlSpider:类,Spider的一个子类
—全站数据爬取的方式
    一基于Spider:手动请求

    —基于CrawlSpider

—CrawlSpider的使用:
    —创建一个工程
    —cd XXX
    —创建爬虫文件(CrawlSpider):
        —scrapy genspider -t crawl xxx www.XXX. com

        —链接提取器:
             —作用:根据指定的规则(allow)进行指定链接的提取

        —规则解析器:
            —作用:将链接提取器提取到的链接进行指定规则(callback)的解析

分布式爬虫

—概念:搭建一个分布式的机群,让其对一组资源进行分布式联合爬取

—作用:提升爬取效率

—如何实现分布式:

    —安装一个scrapy-redis的组件
    原生的scarapy是不可以实现分布式爬虫,必须要让scrapy结合着scrapy-redis组件一起实现            —为什么原生的scrapy不可以实现分布式?
        一调度器不可以被分布式机群共享

        一管道不可以被分布式机群共享

    —scrapy-redis组件作用:
        一可以给原生的scrapy框架提供可以被共享的管道和调度器

 一实现流程
     一创建一个工程
     一创建一个基于CrawlSpider的爬虫文件

     一修改当前的爬虫文件:
         —导包:from scrapy_redis.spiders import RedisCrawlSpider

         —将start _urls和allowed_domains进行注释
         —添加一个新属性:redis_key = 'xxx’可以被共享的调度器队列的名称

         —编写数据解析相关的操作
         —将当前爬虫类的父类修改成RedisCrawlSpider

     —修改配置文件settings
         一指定使用可以被共享的管道
         ITEMPIPELINES = {
         'scrapy_redis.pipelines.RedisPipeline': 400}

         —指定调度器
         —指定redis服务器

      —redis相关操作配置:
          —配置redis的配置文件:
          —linux或者mac: redis.conf

          —windows: redis.windows. conf

          —代开配置文件修改:
              一将bind 127.0.0.1进行删除
              一关闭保护模式:protected-mode yes改为no
         —结合着配置文件开启redis服务
             —redis-server配置文件

         —启动客户端:
             —redis-cli
      —执行工程:
          —scrapy  runspider   XXX.py 
      —向调度器的队列中放入一个起始的url:
          一调度器的队列在redis的客户端中
              —lpush XXX www. XXX.com
     —爬取到的数据存储在了redis的proName:items这个数据结构中

增量式爬虫
一概念:监测网站数据更新的情况,只会爬取网站最新更新出来的数据。

一分析:
    一指定一个起始url
    —基于CrawlSpider获取其他页码链接

    一基于Rule将其他页码链接进行请求
    —从每一个页码对应的页面源码中解析出每一个电影详情页的URL
    —核心:检测电影详情页的url之前有没有请求过
       一将爬取过的电影详情页的url存储
       一存储到redis的set数据结构
   —对详情页的url发起请求,然后解析出电影的名称和简介

   —进行持久化存储
 

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值