#Sprapy爬虫框架初了解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#Sprapy爬虫框架初了解相关的知识,希望对你有一定的参考价值。

Scrapy的安装

cmd命令提示符下: 执行pip install scrapy命令

maybe你会用到的指令或安装(如果用pip指令安装不了,你可以在CSN或度里面找资源):

  • pip install Django
  • install win32api
  • install mysql-python

Scrapy爬虫框架结构

  • 爬虫框架是实现爬虫功能的一个软件结构和功能组件结构
  • 爬虫框架是一个半成品,能够帮助用户实现网络爬虫

5+2结构

技术分享图片

  1. ENGINE(发动机) 不需要用户修改

    • 控制所有模块之间的数据流
    • 根据条件出发事件
  2. SCHEDULER(调度程序)不需要用户修改

    • 对所有爬取请求进行调度管理
  3. ITEM PIPELINES (项目管道组件)

    • 以流水线方式处理Spider产生的爬取项。
    • 由一组操作顺序组成,类似流水线,每个操作是一个Item Pipeline类型
    • 操作包括:对Item内容 清理、检验、查重爬取项中的html数据、将数据存储到数据库
  4. SPIDERS(蜘蛛侠) 用户主要编写

    • 解析Downloader返回的响应(Response)
    • 产生爬取项(scraped item)
    • 产生额外的新的爬取请求(Request)
  5. DOWNLOADER (下载侠)不需要用户修改

    • 根据用户提供的请求下载网页
    • 根据用户提供的请求向网络中提交一个请求,最终获得返回的一个内容
  6. 中间键1 Downloader Middleware

    • 目的:实施Engine ->Downloader这段过程时进行用户可配置的控制
    • 功能:修改、丢弃、新增请求或响应
  7. 中间键2 Spider Middleware

    • 目的:对Spiders和Engine之间的Request、Response、和Item操作进行处理
    • 功能:修改、丢弃、新增请求或爬取项

3条主要数据流路径

  1. SPIDERS->ENGINE->SCHEDULER

  2. SCHEDULER->ENGINE->DOWNLOADER->ENGINE->SPIDERS

  3. SPIDERS->ENGINE->ITEM PIPELINES & SCHEDULER

Requests vs Scrapy

相同点

  • 都可以进行页面请求和爬取,Python爬虫的两个重要技术路线
  • 可用性都好,文档丰富,入门简单
  • 都没有处理JS、提交表单、应对验证码等功能

不同点

  1. Request:页面级爬虫、功能库、并发性考虑不足、性能差、重点在于页面下载、定制灵活、上手十分简单。
  2. Scrapy:网站级爬虫、框架、并发性好,性能较高、重点在于爬虫结构、一般定制灵活,深度定制困难、入门稍难。

选择哪个技术路线开发爬虫

  • 小需求,requests库
  • 不小的需求,Scrapy框架
  • 定制成都很高的需求,自搭框架,Requests>Scrapy

scrapy帮助命令行

scrapy -h

常用命令

  • startproject 创建一个新工程

  • genspider 创建一个爬虫

  • settings 获得爬虫配置信息

  • crawl 运行一个爬虫

  • list 列出工程中所有爬虫

  • shell 启用url调试命令行

以上是关于#Sprapy爬虫框架初了解的主要内容,如果未能解决你的问题,请参考以下文章

网络爬虫 初了解

Python爬虫框架--pyspider初体验

Flask初接触

Python开源爬虫框架scrapy的了解与认识

爬虫框架pyspider的使用

五分钟快速了解Scrapy爬虫框架