———为什么要学习Scrapy?
Scrapy是爬虫框架,并发性好,性能较高,适合较大的爬虫需求。
Scrapy不用管爬虫流程,只需填充好爬虫的核心逻辑代码。
Scrapy框架能够让我们的爬虫效率更高,让开发过程方便、快速。
-
什么是爬虫框架?
爬虫框架是实现爬虫功能的一个软件结构和功能组件集合。
爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫。
-
什么是Scrapy?
文档地址:http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html
Scrapy 使用了Twisted
异步网络框架,可以加快我们的下载速度。
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够快速的抓取。
-
异步和非阻塞的区别
前面我们说Twisted是一个异步的网络框架,经常我们也听到一个词语叫做非阻塞,那么它们有什么区别呢?
异步:调用在发出之后,这个调用就直接返回,不管有无结果;异步是过程。 非阻塞:关注的是程序在等待调用结果(消息,返回值)时的状态,指在不能立刻得到结果之前,该调用不会阻塞当前线程。
-
Scrapy的工作流程
回顾之前的爬虫流程
上面的流程可以改写为
Scrapy的流程
其流程可以描述如下:
- Spiders(爬虫)封装Requests对象→爬虫中间件→引擎
- 引擎把Requests对象交给调度器→调度器把Requests对象进行排队→引擎
- 引擎把Requests队列交给→下载中间件→下载器发送请求,获取Response→下载中间件→引擎
- 引擎把Response交给→爬虫中间件→(1)Spiders(爬虫)提取url地址,封装成request对象→再执行123或执行(2)
(2)Spiders(爬虫)提起数据→引擎→管道 - 管道进行数据的处理和保存
以上流程,只有加粗字体的部分是需要我们手写的
注意:
图中绿色线条的表示数据的传递
注意图中中间件的位置,决定了其作用
注意其中引擎的位置,所有的模块之前相互独立,只和引擎进行交互
scrapy中每个模块的具体作用
-
Scrapy安装
Windows系统常见的报错类型:
→、
→
安装步骤:
1.查看自己python版本号,系统位数
上图中:64 bit表示64位,AMD64表示CPU是64位,win32表示Windows系统,不需要的
2.下载Twisted
打开网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
下载对应版本号和位数,如cp37对应Python3.7,win32表示32位,win_amd64表示64位,下载到本地
3.安装
打开PowerShell(管理员)窗口或以管理员身份运行cmd,输入pip install XXX.whl,XXX.whl是下载的Twisted离线文件
输入pip install+空格
后,把文件拖进去,按回车即可
安装完成后,不要关闭窗口,接着安装其他依赖库,输入以下命令
pip install pywin32
pip install lxml
pip install w3lib
pip install parsel
pip install cryptography
pip install pyOpenSSL
相关依赖全部安装完毕,这个时候就可以从容潇洒的执行:
pip install scrapy
4. 测试
输入scrapy
或scrapy -h
,可以查看scrapy命令行,通过scrapy bench
测试,不报错就没问题
>>>
阅读更多文章请点击以下链接:
python爬虫从入门到放弃之一:认识爬虫
python爬虫从入门到放弃之二:HTML基础
python爬虫从入门到放弃之三:爬虫的基本流程
python爬虫从入门到放弃之四:Requests库基础
python爬虫从入门到放弃之五:Requests库高级用法
python爬虫从入门到放弃之六:BeautifulSoup库
python爬虫从入门到放弃之七:正则表达式
python爬虫从入门到放弃之八:Xpath
python爬虫从入门到放弃之九:Json解析
python爬虫从入门到放弃之十:selenium库
python爬虫从入门到放弃之十一:定时发送邮件
python爬虫从入门到放弃之十二:多协程
python爬虫从入门到放弃之十三:Scrapy概念和流程
python爬虫从入门到放弃之十四:Scrapy入门使用
网友评论