标签:ide out 持久 ted pid scrapy 回调函数 cookie 发送请求
1. scrapy框架:大而全的爬虫组件。
2. 安装:
注意:scrapy依赖Twisted
- Win:
下载:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
pip3 install wheel
pip install Twisted-19.10.0-cp37-cp37m-win_amd64.whl
pip3 install pywin32
pip3 install scrapy
- Linux:
pip3 install scrapy
3.Scrapy(项目、爬虫创建):
# 创建project
scrapy startproject xdb
# 创建爬虫
scrapy genspider chouti chouti.com
scrapy genspider cnblogs cnblogs.com
# 启动爬虫
scrapy crawl chouti --nolog
4. 理论
(1)twisted 和 requests 区别
requests 是一个伪装浏览器发送请求的模块
twisted 是一个基于事件的异步非阻塞网络框架,单线程多并发
(2)scrapy 运行流程
引擎得到要运行的爬虫,去爬虫中执行start_request方法,得到迭代器
循环迭代器得到request对象,request对象中封装了callback 和url
就对象都放到调度器中,等待下载器去下载
下载器去调度器中获取对象,执行下载任务,并返回到回调函数
去回调函数中执行:
yield Request (重新再次执行爬虫)
yield Item (取做持久化)
5. scrapy 功能
(1)pipeline和items 做持久化
(2)去重(自定义和dont_filter=Flase)
(3)深度和广度,scrapy默认使用深度
(4)手动cookie
(5)代理
-在start_request 方法中指定
-在yield Request(meta指定)
- 手动创建
(6)中间件
- 下载中间件
- 爬虫中间件
(7)定制命令
(8)信号
(9)scrapy_redis
- 去重(Redis集合)
- 调度器
- 自定义起始url
6. 爬虫高可用
(1)协程
(2)基于事件循环异步非阻塞模块
标签:ide out 持久 ted pid scrapy 回调函数 cookie 发送请求
原文地址:https://www.cnblogs.com/hbfengjun/p/12564256.html