scrap框架

Posted hbfengjun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scrap框架相关的知识,希望对你有一定的参考价值。

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)基于事件循环异步非阻塞模块

以上是关于scrap框架的主要内容,如果未能解决你的问题,请参考以下文章

应用scrapy爬虫框架

爬虫框架Scrapy与Web框架Django结合

scrapy 框架基本使用

爬虫篇 | 高级爬虫:Scrapy爬虫框架的安装

爬虫毕设:Scrapy框架

Python爬虫 ---scrapy框架初探及实战