Scrapy 入门


运行方式

  1. 交互式解析器

  2. 命令行脚本

  3. 集成开发环境

Pip

1
2
3
4
5
pip  install  package
pip uninstall package
pip list
pip show
pip install virtualenv

Requests

  • 发起请求
  • 获取请求返回状态码
  • 获取请求返回头部信息
  • 获取请求返回内容

BeautifulSoup

解析 HTML、XML 文档、修复含有未闭合标签等错误的文档,为待解析的页面建立一棵树,以便提取其中的数据。

Scrapy

Scrapy 是快速高级的 web 爬虫框架,用于抓取网站并从网页中提取结构化数据。

优势

  1. HTML, XML 源数据 选择及提取 的内置支持
  2. 通过 feed 导出 提供了多格式(JSON、CSV、XML),多存储后端(FTP、S3、本地文件系统)的内置支持
    提供了 media pipeline,可以 自动下载 爬取到的数据中的图片(或者其他资源)。
  3. 内置的中间件及扩展为下列功能提供了支持:
    cookies and session 处理
    HTTP 压缩
    HTTP 认证
    HTTP 缓存

运行环境

  • Python 2.7 or Python 3.4+
  • Works on Linux, Windows, Mac OSX, BSD

核心组件

  1. Spider

    用户定义爬取动作、分析爬取数据的地方

    name: 定义 spider 名字,必须是唯一的
    start_urls:指定了一组 URLs 告诉 spider 从什么地方开始去进行爬取
    parse:当 response 没有指定回调函数时,该方法是 Scrapy 处理下载的 response 的默认方法

  2. Item

    Item对象是中简单的容器,保存爬取得到的数据。提供了类似词典的api用于声明可用字段的简单语法

  3. Pipelines
    接收从 spider 中返回的 Item,通过 pipeline 的各个组件决定是否继续处理数据还是丢弃数据不再处理。主要功能如下:

    • 清理数据
    • 验证数据
    • 数据查重
    • 数据储存
  4. Middlewares

    • Downloader middlewares(下载中件): 在网页在下载前、后进行逻辑处理

    • Spider middlewares(爬虫中件):调用爬虫输入下载结果和输出请求/数据时进行逻辑处理

  5. Scrapy Engine(引擎)

    核心引擎,负责控制和调度各个组件,保证数据流转

  6. Scheduler(调度器)

    负责管理任务、过滤任务、输出任务的调度器,存储、去重任务都在此控制;

  7. Downloader

    载器,负责在网络上下载网页数据,输入待下载URL,输出下载结果

Pyspider

自带WebUI的界面, 配置灵活性没Scrapy高。