scrapy基本使用


scrapy基本使用:

​ 创建工程:scrapy startproject 工程名

​ 进入到工程后,在终端创建爬虫

​ 创建爬虫:scrapy genspider 爬虫名 爬虫的地址

​ 执行爬虫:scrapy crawl 爬虫名

配置settings.py:

​ 不遵从robots协议

ROBOTSTXT_OBEY = False

​ 进行UA伪装

​ ```USER_AGENT``

​ 进行日志等级设定 : LOG_LEVEL='ERROR'

持久化储存:
基于终端命令:

​ 特性:只可以将parse方法返回的值存储到本地磁盘

​ 指令:scrapy crawl dmoz -o douban.json -t json

​ o 后面是导出文件名,-t 后面是导出类型

​ 可保存格式:JSON,JSON lines,CSV,XML

基于管道:实现流程

​ 1.数据解析

​ 2.在item类定义相关属性

​ 3.将解析的数据存储或封装到一个item类型的对象

​ 4.向管道提交item

​ 5.在管道文件的process_item方法中接受item进行持久化存储

​ 6.配置文件开启管道 setting.py ITEM_PIPELINES

​ 将同一份数据持久化到不同的平台中

​ 分析:
​ 1.管道文件中的一个管道类负责数据的一种形式的持久化存储

​ 2.爬虫文件向管道提交的item只会提交给优先级最高的那一类管道

​ 3.在管道类的process_item中的return item表示的是将当前管道接受的item返回、提交给下一个即将被执行的管道类

五大核心组件

1627635209847.png

  • 引擎(Scrapy)
    • 用来处理整个系统的数据流处理, 触发事务(框架核心)
  • 调度器(Scheduler)
    • 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址
  • 下载器(Downloader)
    • 用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)
  • 爬虫(Spiders)
    • 爬虫是主要干活的, 用于从特定的网页中提取自己需要的信息, 即所谓的实体(Item)。用户也可以从中提取出链接,让Scrapy继续抓取下一个页面
  • 项目管道(Pipeline)
    • 负责处理爬虫从网页中抽取的实体,主要的功能是持久化实体、验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道,并经过几个特定的次序处理数据。
基于scrapy进行图片数据·爬取

​ 在爬虫文件中只需要解析提取出图片的地址,然后将地址提交给管道

​ 在配置文件中配置:IMAGES_STORE = './imgsLib'

​ 在管道文件中进行管道类的定制:

​ 1.from scrapy.pipelines.images import ImagesPipeline

​ 2.将管道类的父类修改成 ImagesPipline 或者重新定义类

​ 3.重写父类三方法

提高scrapy的爬取效率

​ 增加并发:

​ 框架默认开启32个并发线程,可以适当增加,在setting配置文件中修改CONCURRENT_REQUESTS

​ 降低日志级别:

​ 在运行框架时,会有大量日志信息输出,为了减少cpu的使用率。可以设置log输出信息为INFO或者ERROR 在配置文件中编写COOKIES_ENABLED = False

​ 禁止重试:对失败的HTTP请求重试会减慢爬取速度,RETRY_ENABLED = False

​ 减少下载超时:如果对一个非常慢的链接进行爬取,减少下载超时可以能让卡主的链接快速被放弃,从而提升效率。在配置文件中进行编写DOWNLOAD_TIMEORT = 10 超时时间为10s

增量式爬虫
-增量式爬虫
    -概念:监测网站数据更新的情况
    -核心:去重!!数据库储存之储存更新的
    -深度爬取类型的网站中需要对详情页的url进行记录和检测
        -记录:将爬取过的详情页url进行记录保存
            -url存储到redis的set中
        -检测:对某一个详情url进行发请求之前先去redis中查看是否有当前url,有的话就意味该url已经爬取过了

​ 数据指纹

1628256440220.png


文章作者: Kexuan Shi
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Kexuan Shi !
评论
  目录