Scrapy框架理论

Scrapy框架

1. 框架

  • 什么是框架
    • 就是一个集成了很多功能并且具有很强通用性的一个项目模板
    • 可以认为就是一个较为通用的项目模板
    • 一个项目的半成品
  • 如何学习框架
    • 专门学习框架封装的各种功能的详细用法
  • 什么是Scrapy
    • 爬虫中封装好的一个框架,功能强大,使用较多
    • 功能(优点)
      • 高性能的持久化存储
      • 异步数据的下载
      • 高性能的数据解析
      • 分布式

2. 基本使用

2.1 Scrapy环境的安装

  1. 直接通过pip命令安装(方便、快捷)
# pip install Scrapy
  1. 下载相关文件后安装(比较麻烦)
    1. pip install wheel
    2. 下载twisted,地址为:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
    3. pip install pywin32
    4. pip install scrapy
  • 测试:终端中输入scrapy命令,没有报错即为安装成功

2.2 基本使用(使用步骤)

  1. 创建工程:scrapy startproject 项目名
  2. 进入项目:cd 项目名
  3. 在spiders子目录下创建爬虫文件
    • scrapy genspider 爬虫名 网址
    • 例如:scrapy genspider first www.first.com
  4. 执行爬虫
    • scrapy crawl 爬虫名

3. 数据解析

  • xpath解析
    • response.xpath(‘’)
    • 返回的是列表,列表元素是Selector对象
    • 从Selector对象返回data参数:使用extract()
    • 也可以使用 .get(“data”)
    • 如果列表调用extract,则表示将列表中的每一个Selector对象中的data值都提取了出来
    • extract_first(),将列表中的第一个元素(下标为0)进行extract操作

4. 持久化存储

  • 基于终端命令
    • 要求:只可以将parse方法的返回值存储到本地的文本文件中
    • 注意:持久化存储对应的文本文件类型只可以是:
      ‘json’, ‘jsonlines’, ‘jl’, ‘csv’, ‘xml’, ‘marshal’, ‘pickle’
    • 指令:scrapy crawl xxx -o 文件名
    • 好处:简洁、高效、便捷
    • 缺点:局限性较强(数据只可以存储到指定后缀的文本文件中)
  • 基于管道
    • 编码流程

      • 数据解析
      • 在item类中定义相关属性
      • 将解析的数据封装存储到item类型的对象中
      • 将item类型的对象提交给管道进行持久化存储操作
      • 在管道类的process_item中要将其接收到的item对象中存储的数据进行持久化存储操作
      • 在配置文件中开启管道
    • 好处

      • 通用性高
    • 面试题:将爬取的数据一份存到本地,一份存到数据库

      • 管道中一个类对应将数据存储到一种平台
      • 爬虫文件提交的item只会给管道文件中第一个被执行的管道类接收
      • process_item中的return item表示将item传递给下一个即将被执行的管道类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值