1, 框架概述
- 异步的爬虫框架.
- 高性能的数据解析, 持久化存储, 全栈数据的爬取, 中间件, 分布式
- 框架: 就是一个集成好了各种功能且具有很强通用性的一个项目模板.
2, 环境的安装
- Linux:
- pip3 install scrapy
- Windows:
- a. pip3 install wheel
b. 下载 twisted http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
c. 进入下载目录, 执行 pip3 install Twisted?17.1.0?cp35?cp35m?win_amd64.whl
- d. pip3 install pywin32
- e. pip3 install scrapy
3, 基本使用
- 1. 新建一个工程: scrapy startporject proName
- settings.py: 当前工程的配置文件
- spiders: 爬虫包, 必须要存放一个或者多个爬虫文件 (.py)
- - 2.cd proName
- - 3.scrapy genspider spiderName www.xxx.com
- 4. 执行工程: scrapy crawl spiderName
- settings.py:
- 不遵从 robots 协议
- UA 伪装
- 指定日志输出的类型: LOG_LEVEL = 'ERROR'
4, 数据解析
- 1.response.xpath('xpath 表达式')
- 2.scrapy 中的 xpath 解析, 在进行数据提取的时候, xpath 方法返回的列表中存储的不再是字符串,
而是存储的 Selector 对象, 相关的字符串数据是存储在 Selector 对象的 data 参数中, 我们必须使用
extract()/extract_first() 进行字符串数据的提取
- extract(): 可以作用到列表中的每一个列表元素中, 返回的依然是一个列表
- extract_first(): 只可以作用到列表中的第一个列表元素中, 返回的是字符串
5, 持久化存储
- 基于终端指令的持久化存储
- 只可以将 parse 方法的返回值存储到指定后缀的文本文件中.
- scrapy crawl spiderName -o ./duanzi.CSV
- 基于管道的持久化存储
待补充
来源: http://www.bubuko.com/infodetail-3319974.html