爬虫scrapy框架的安装和基本操作使用

scrapy框架

-什么是框架?
    -就是一个集成了很多功能而且具有很强通用性的一个项目模板。
-如何学习框架?
    -专门学习框架 封装的各种功能的详细用法。
-什么是scrapy?
    -爬虫中封装好的一个明星框架。
    -功能:高性能的持久化存储,异步的数据下载,高性能的数据解析,分布式
-scrapy框架的基本使用
    -环境的安装:
        -mac or linux: pip install scrapy
        -windows:
            -pip installwheel
            -下载twisted,下载地址为http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
            -安装twisted, pip install Twisted-17.1.0-cp36-cp36m-win_amd64.whl
            - pip install pywin32
            - pip install scrapy
            测试:在终端里录入scrapy指令,没有报错即表示安装成功;
    -创建一个工程:scrapy startproject xxxPro
    -cd xxxPro
    -在spiders子目录中创建一个爬虫文件
        -scrapy genspider spiderName www.xxx.com
    -执行工程:
        -scrapy crawl spiderName
-scrapy数据解析

-scrapy持久化存储
    -基于终端命令:
        -要求:只可以将parse方法的返回值存储到本地的文本文件中
        -注意:持久化存储对应的文本文件的类型只可以为:'json','jsonlines','jl','csv','xml','marshal','pickle'
        -指令:scrapy crawl xxx -o filePath
        -好处:简介高效便捷
        -缺点:局限性比较强(数据只可以存储到指定后缀的文本文件中)
    -基于管道:
        -编码流程:
            -数据解析
            -在item类中定义相关的属性
            -将解析的数据封装存储到item类型的对象
            -将item类型的对象提交给管道进行持久化存储的操作
            -在管道类的process_item中要将其接收到的item对象中存储的数据进行持久化存储操作
            -在配置文件中开启管道
        -好处:
            -通用性强。
        -面试题:将爬取到的数据一份存储到本地一份存储到数据库,如何实现?
            -管道文件中一个管道类对应的是将数据存储到一种平台
            -爬虫文件提交的item只会给管道文件中第一个被执行的管道类接收
            -process_item中的return item 表示将item传递给下一个即将被执行的管道类
-基于Spider的全站数据爬取
    -就是将网站中某板块下的全部页码对应的页面数据进行爬取
    -需求:爬取网站中的照片的名称
    -实现方式:
        -将所有页面的url添加到start_urls列表(不推荐)
        -自行手动进行请求发送(推荐)
            -手动请求发送:
                - yield scrapy.Request(url,callback):callback专门用于数据解析
-五大核心部件
    -引擎:用来处理整个系统的数据流处理,触发事务(框架核心)
    -调度器:用来接收引擎发过来的请求,压入队列中,并在引擎再次请求的时候返回。
                  可以想象成一个URL(抓取网页的网址或者说是链接)的优先队列,由它来决定
                  下一个要抓取的网站是什么,同时去除重复的网址
    -下载器:用于下载网页内容,并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)
    -爬虫:爬虫是主要干活的,用于从特定的网页中提取自己需要的信息,即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面
    -项目管道(Pipeline):负责处理爬虫从网页抽取的实体,主要的功能是持久化实体、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经历几个特定的次序处理数据。
-请求传参
    -使用场景:如果爬取解析的数据不在同一张页面中。(深度爬取
    -需求:爬取boss的岗位名称,岗位描述


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

py爱好者~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值