Scrapy框架简介
scrapy是基于Twisted的一个第三方爬虫框架,许多功能已经被封装好,方便提取结构性的数据。其可以应用在数据挖掘,信息处理等方面。提供了许多的爬虫的基类,可更简便使用爬虫。
Twisted有些特殊的地方是它是事件驱动的,并且比较适合异步的代码。对于会阻塞线程的操作包含访问文件、数据库或者Web、产生新的进程并需要处理新进程的输出(如运行shell命令)、执行系统层次操作的代码(如等待系统队列),Twisted提供了允许执行上面的操作但不会阻塞代码执行的方法。
Scrapy 的组成部分: 1. 引擎、2.下载器、3. 爬虫、4. 调度器、5. 管道(item和pipeline)
以上五部分 只需要关注 爬虫和管道 即可
- spiders:蜘蛛或爬虫,分析网页的地方,主要的代码写在这里
- 管道: 包括item和pipeline,用于处理数据
- 引擎: 用来处理整个系统的数据流,触发各种事务(框架的核心)
- 下载器: 用于下载网页内容,并且返回给蜘蛛(下载器基于Twisted的高效异步模型)
- 调度器: 用来接收引擎发过来的请求,压入队列中等处理任务
Scrapy框架安装
Mac安装步骤
- 安装依赖库Twisted。 打开终端 pip install twisted
- 安装其框架Scrapy。 pip install scrapy
wid安装步骤
- 在线安装和Mac相同, pip install twisted
- 离线安装 需要在网站http://www.lfd.uci.edu/~gohlke/pythonlibs#twisted下载响应的版本,然后想下载好的文件拖到 pip install 后面
- 安装其框架和Mac相同
- 安装 pip install pywin32
Scrapy工程
工程创建:
- 先在终端: cd到存放的目录下
- 创建项目: scrapy startproject 工程项目名
- 然后再在: pycharm中打开此项目(空工程)
- 创建爬虫: scrapy genspider 爬虫名 该网站域名 [guoyapeng@localhost ~/pyword/spider05/MyScrapy] $scrapy genspider budejie budejie.com
- 运行爬虫: scrapy crawl 爬虫名 [-o xx.json/xml/csv]。 scrapy crawl qiubai -o budejie.json
工程配置:
- 在spiders里面解析数据 (解析)。spiders目录下budejie.py为主要的爬虫代码,包括了对页面的请求以及页面的处理
- 根据需求编写item (爬取)。 items.py里存放的是要爬取数据的字段信息
- 在管道中处理解析完的数据 (存储)。pipeline主要是对spiders中爬虫的返回的数据的处理,可以写入到数据库,也可以写入到文件。
整体思路: