Scrapy框架介绍与安装

2018 年 8 月 23 日 黑白之道


1.1认识Scrapy框架


Scrapy框架介绍


Scrapy是: 由Python语言开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。


Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。




Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。


Scrap,是碎片的意思,这个Python的爬虫框架叫Scrapy。


Scrapy框架的运行原理:



Scrapy Engine: 


      负责组件之间数据的流转,当某个动作发生时触发事件。


Scheduler: 


      接收requests,并把他们入队,以便后续的调度。


Spiders: 


      用户编写的可定制化的部分,负责解析response,产生items和URL。


Item Pipeline: 


      负责处理item,典型的用途:清洗、验证、持久化。


Downloadermiddlewares: 


      位于引擎和下载器之间的一个钩子,处理传送到下载器的requests和传送到引擎的response(若需要          在Requests到达Downloader之前或者是responses到达spiders之前做一些预处理,可以使用该中间件来完成)。


Spidermiddlewares: 


      位于引擎和抓取器之间的一个钩子,处理抓取器的输入和输出 (在spiders产生的Items到达Item      Pipeline之前做一些预处理或response到达spider之前做一些处理)。


Scrapy运行流程大概如下:


数据处理流程


Scrapy的整个数据处理流程有Scrapy引擎进行控制,其主要的运行方式为:


引擎打开一个域名,时蜘蛛处理这个域名,并让蜘蛛获取第一个爬取的URL。


引擎从蜘蛛那获取第一个需要爬取的URL,然后作为请求在调度中进行调度。


引擎从调度那获取接下来进行爬取的页面。


调度将下一个爬取的URL返回给引擎,引擎将它们通过下载中间件发送到下载器。


当网页被下载器下载完成以后,响应内容通过下载中间件被发送到引擎。

引擎收到下载器的响应并将它通过蜘蛛中间件发送到蜘蛛进行处理。


蜘蛛处理响应并返回爬取到的项目,然后给引擎发送新的请求。


引擎将抓取到的项目项目管道,并向调度发送请求。


系统重复第二部后面的操作,直到调度中没有请求,然后断开引擎与域之间的联系。


1.2 Scrapy的安装:


第一种:在命令行模式下使用pip命令(pip命令必须要有python环境)即可安装:

$ pip install scrapy
F:\Python02\demo>scrapy version
Scrapy 1.5.0


第二种:首先下载,然后再安装:


$ pip download scrapy -d ./
# 通过指定国内镜像源下载
$pip download  -i https://pypi.tuna.tsinghua.edu.cn/simple scrapy -d ./


安装具体文件如下:



2. Scrapy爬虫框架的具体使用步骤如下:


登录查看更多
0

相关内容

Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
194+阅读 · 2020年6月29日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
算法与数据结构Python,369页pdf
专知会员服务
162+阅读 · 2020年3月4日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
干货 :数据分析师的完整流程与知识结构体系
数据分析
8+阅读 · 2018年7月31日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
Python NLP入门教程
七月在线实验室
7+阅读 · 2018年6月5日
干货 | Python 爬虫的工具列表大全
机器学习算法与Python学习
10+阅读 · 2018年4月13日
设计和实现一款轻量级的爬虫框架
架构文摘
13+阅读 · 2018年1月17日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
【机器学习】推荐13个机器学习框架
产业智能官
8+阅读 · 2017年9月10日
A Survey on Deep Learning for Named Entity Recognition
Arxiv
26+阅读 · 2020年3月13日
Arxiv
35+阅读 · 2019年11月7日
Multi-Grained Named Entity Recognition
Arxiv
6+阅读 · 2019年6月20日
Arxiv
5+阅读 · 2018年6月12日
Arxiv
8+阅读 · 2018年5月17日
Arxiv
3+阅读 · 2012年11月20日
VIP会员
相关资讯
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
34个最优秀好用的Python开源框架
专知
9+阅读 · 2019年3月1日
干货 :数据分析师的完整流程与知识结构体系
数据分析
8+阅读 · 2018年7月31日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
Python NLP入门教程
七月在线实验室
7+阅读 · 2018年6月5日
干货 | Python 爬虫的工具列表大全
机器学习算法与Python学习
10+阅读 · 2018年4月13日
设计和实现一款轻量级的爬虫框架
架构文摘
13+阅读 · 2018年1月17日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
【机器学习】推荐13个机器学习框架
产业智能官
8+阅读 · 2017年9月10日
相关论文
Top
微信扫码咨询专知VIP会员