Scrapy爬虫框架

一、scrapy安装

  • 普通:cmd→pip install scrapy
  • anaconda:打开cmd窗口→输入命令conda install scrapy

二、框架解析

Scrapy爬虫框架
Engine (不需要用户修改)
  • 控制所有模块间的数据流
  • 根据条件触发事件

Scheduler(不需要用户修改)

  • 对所有请求进行调度管理

Downloader(不需要用户修改)

  • 根据请求下载网页

Downloader Milddleware中间键

  • 目的:实施Engine、Scheduler、Downloader之间进行用户可配置的控制
  • 功能:修改、丢弃、新增请求或响应

Spider(需要用户编写配置代码)

  • 直接产生爬取请求
  • 解析Downloader返回的响应,产生爬取项和额外的爬取请求

Spider Middleware

  • 目的:对请求和爬取项的再处理
  • 功能:修改、丢弃、新增请求或爬取项

Item Pipelines(需要用户编写配置代码)

  • 以流水线方式处理Spider产生的爬取项
    (由一组操作顺序组成,类似流水线,每个操作是一个Item Pipelines类型)
  • 可能操作包括:清理、检验、查重爬取项中的HTML数据,将数据存储到数据库中

; 三、Scrapy常用命令

  • 命令格式:>Scrapy
  • 一个工程:同一个Scrapy框架,可包含多个爬虫

命令说明格式startproject创建新工程scrapy startproject < name> [dir]genspider创建爬虫scrapy genspider [options] < name> < domain>settings获取爬虫配置信息scrapy settings [options]crawl运行爬虫scrapy crawl < spider>list列出工程中所有爬虫scrapy listshell启动url调试命令行scrapy shell [url]

四、requests库 VS Scrapy框架

相同点

  • 都可以进行页面请求和爬取
  • 可用性都好,文档丰富
  • 都没处理js、提交表单、应对验证码等功能(可扩展)

不同点

requests库Scrapy框架页面爬虫:个别网页网站爬虫:批量网页功能库:由函数构成框架:部分函数不需用户定义和使用并发性不足,性能慢并发性好,性能高重点在页面下载重点在爬虫结构定制灵活一般定制灵活,深度定制困难

技术选择

  • requests库:小需求
  • Scrapy框架:大需求
    (持续/周期性爬取网站信息,并积累信息形成自己的爬取库)
  • requests库 优于 Scrapy框架:定制程度的需求很高,想搭建自己的爬取框架

五、示例

1、创建工程

  • cmd窗口→scrapy startproject 存储路径\工程名
  • 生成的工程目录如下:
    1&#x3001;&#x6587;&#x4EF6;&#x540D;/&#xFF1A;&#x5916;&#x5C42;&#x76EE;&#x5F55;&#xFF0C;&#x5373;&#x6574;&#x4E2A;&#x5DE5;&#x7A0B;&#x6240;&#x5728;&#x4F4D;&#x7F6E;
    2&#x3001;&#x6587;&#x4EF6;&#x540D;/scrapy.cfg&#xFF1A;&#x90E8;&#x7F72;scrapy&#x722C;&#x866B;&#x7684;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#xFF08;&#x5C06;&#x722C;&#x866B;&#x653E;&#x5728;&#x7279;&#x5B9A;&#x7684;&#x670D;&#x52A1;&#x5668;&#x4E0A;&#xFF0C;&#x5E76;&#x4E14;&#x5728;&#x670D;&#x52A1;&#x5668;&#x4E0A;&#x914D;&#x7F6E;&#x597D;&#x76F8;&#x5E94;&#x7684;&#x64CD;&#x4F5C;&#x63A5;&#x53E3;&#xFF09;
    3&#x3001;&#x6587;&#x4EF6;&#x540D;/&#x6587;&#x4EF6;&#x540D;/&#xFF1A;scrapy&#x6846;&#x67B6;&#x4E0B;&#x6240;&#x6709;&#x6587;&#x4EF6;&#x7684;&#x76EE;&#x5F55;
    4&#x3001;&#x6587;&#x4EF6;&#x540D;/&#x6587;&#x4EF6;&#x540D;/_init_.py&#xFF1A;&#x521D;&#x59CB;&#x5316;&#x811A;&#x672C;&#xFF08;&#x4E0D;&#x9700;&#x7F16;&#x5199;&#xFF09;
    5&#x3001;&#x6587;&#x4EF6;&#x540D;/&#x6587;&#x4EF6;&#x540D;/items.py&#xFF1A;Items&#x4EE3;&#x7801;&#x6A21;&#x5757;&#xFF08;&#x4E0D;&#x9700;&#x7F16;&#x5199;&#xFF09;
    6&#x3001;&#x6587;&#x4EF6;&#x540D;/&#x6587;&#x4EF6;&#x540D;/middlewares.py&#xFF1A;Middlewares&#x4EE3;&#x7801;&#x6A21;&#x677F;&#xFF08;&#x82E5;&#x6269;&#x5C55;Middlewares&#x529F;&#x80FD;&#xFF0C;&#x5C06;&#x5DE5;&#x80FD;&#x5199;&#x5165;&#x6B64;&#x6587;&#x4EF6;&#xFF09;
    7&#x3001;&#x6587;&#x4EF6;&#x540D;/&#x6587;&#x4EF6;&#x540D;/piplines.py&#xFF1A;Piplines&#x4EE3;&#x7801;&#x6A21;&#x677F;
    8&#x3001;&#x6587;&#x4EF6;&#x540D;/&#x6587;&#x4EF6;&#x540D;/settings.py&#xFF1A;Scrapy&#x722C;&#x866B;&#x7684;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#xFF08;&#x82E5;&#x4F18;&#x5316;&#x722C;&#x866B;&#x529F;&#x80FD;&#xFF0C;&#x4FEE;&#x6539;&#x6B64;&#x6587;&#x4EF6;&#x4E2D;&#x5BF9;&#x5E94;&#x7684;&#x914D;&#x7F6E;&#x9879;&#xFF09;
    9&#x3001;&#x6587;&#x4EF6;&#x540D;/&#x6587;&#x4EF6;&#x540D;/spiders/&#xFF1A;Spiders&#x4EE3;&#x7801;&#x6A21;&#x5757;&#x76EE;&#x5F55;&#xFF08;&#x5B58;&#x653E;&#x6B64;&#x5DE5;&#x7A0B;&#x4E2D;&#x5EFA;&#x7ACB;&#x7684;&#x722C;&#x866B;&#xFF09;
    &#x6587;&#x4EF6;&#x540D;/&#x6587;&#x4EF6;&#x540D;/spiders/_init_.py&#xFF1A;&#x521D;&#x59CB;&#x6587;&#x4EF6;&#xFF0C;&#x65E0;&#x9700;&#x4FEE;&#x6539;
    &#x6587;&#x4EF6;&#x540D;/&#x6587;&#x4EF6;&#x540D;/spiders/_pycache_/&#xFF1A;&#x7F13;&#x5B58;&#x76EE;&#x5F55;&#xFF0C;&#x65E0;&#x9700;&#x4FEE;&#x6539;
    目录如下图:
    Scrapy爬虫框架
    eg:建立工程:
    scrapy startproject 桌面路径\python123demo
    Scrapy爬虫框架

2、在工程中产生一个爬虫

  • cmd窗口→scrapy genspider 爬虫名 网页域名
  • 这步只是建立爬虫文件,修改后的爬虫代码如图:
    eg:建立爬虫文件demo.py:
    Scrapy爬虫框架
    此时spiders目录下会出现demo.py文件
    Scrapy爬虫框架

3、配置产生的爬虫

  • 修改爬虫文件,进行相应爬取
  • 编辑器→修改代码内容,如下图:
    Scrapy爬虫框架

4、运行爬虫,获取网页

  • cmd窗口→scrap crawl 爬虫文件名
  • 此时工程里面就会出现爬虫的html文件
    eg:scrapy crawl demo.py
    Scrapy爬虫框架

Original: https://blog.csdn.net/weixin_45052608/article/details/105067462
Author: Ayanha
Title: Scrapy爬虫框架

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/792768/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球