Scrapy基础 第一节:Scrapy介绍和安装配置
Scrapy第一季:Scrapy框架基础介绍
前置知识:
- 掌握Python的基础知识
- 对爬虫基础有一定了解
说明: 运行环境
Win10,Python3 64位
目录:
- 第一节:Scrapy介绍和安装配置
- 第二节:Scrapy版的Hello World
- 第三节:Scapy框架结构和组件介绍
第一节:Scrapy介绍和环境安装
1 爬虫是什么
百度百科上的定义
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
大型的网络爬虫被广泛的应用于搜索引擎,数据挖掘等领域,个人或企业利用爬虫搜集对自身有价值的数据,在大数据时代正在逐渐成为一种常态。
一个网络爬虫的基本流程可以总结为以下循环:

2 Scrapy的价值
网络爬虫是我们挖掘数据价值的重要工具,而一款好的爬虫框架,是一个强力的挖掘机,能大幅提高我们挖掘数据资源的效率。
相信接触过python的同学都知道,requests+selenium从功能上来说可以解决90%的爬虫需求,也是各大教程的主打工具,我也是这样入门爬虫的,那为什么我们还要用scrapy,是为了剩余10%需求么?当然不是!
功能特性往往只是产品的一方面,一个真正能稳定高效运行的商业化产品,需要考虑各个方面的内容。比如,设计爬虫程序时,还要考虑防止重复爬取相同页面(URL去重)、网页搜索策略(深度优先或广度优先等)、爬虫访问边界限定等一系列问题。
从头开发一个爬虫程序是一项烦琐的工作,为了避免因制造轮子而消耗大量时间,在实际应用中我们可以选择使用一些优秀的爬虫框架,使用框架可以降低开发成本,提高程序质量,让我们能够专注于业务逻辑(爬取有价值的数据)。
Scrapy就是目前爬虫框架中最流行,也最完善的一个,它提供了一套完整的解决方案,能帮助我们将作品产品化,而是不是一直停留在Demo阶段。
3 安装scrapy
首先需要有Python环境,这个就不用多说,自己安装就行了
https://www.python.org/
(1) 安装wheel
pip install wheel
(2) 安装XML解析支持
pip install lxml
(3) 安装对象接口库
pip install zope.interface
(4) 安装pyOpenSSL
pip install pyOpenSSL
(5) 安装twisted
不能通过pip安装,只能通过whl安装
https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
根据自己的python和操作系统下载对应的版本,比如我的

下载后进入.whl 文件所在目录,本地安装
pip install “Twisted‑18.9.0‑cp36‑cp36m‑win_amd64.whl”
(6) 安装pywin32库
https://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32
这个和上面一样下载对应版本安装就行了
pip install “pywin32‑224‑cp36‑cp36m‑win_amd64.whl”
PS: 网上也有人打包好的安装包,搜索下载安装也行。
pywin32-221.win-amd64-py3.6.exe
(7) 安装scrapy
准备工作都好了就可以直接安装了
pip install scrapy
大概几分钟时间,如果执行没有报错那就安装好了,如果中途还缺什么模块就pip安装
(8)检测版本
最后再检测一下版本,确认是否安装成功
scrapy -v
输出结果
Scrapy 1.5.1 - no active project
!安装成功
4 Scrapy资源
官方网站
https://scrapy.org/
中文教程
https://scrapy-chs.readthedocs.io/zh_CN/latest/index.html
源码地址
https://github.com/scrapy/scrapy
中文社区
http://www.scrapyd.cn/
5 扩展知识
Python爬虫框架当然不这一个,其他一些框架也各有特点,只是没有Scrapy这么通用和流行,这里做个简单介绍,有兴趣可以自己搜索。
- PySpider
pyspider 是一个用python实现的功能强大的网络爬虫系统,能在浏览器界面上进行脚本的编写,功能的调度和爬取结果的实时查看,后端使用常用的数据库进行爬取结果的存储,还能定时设置任务与任务优先级等。
项目地址:https://github.com/binux/pyspider
- Crawley
Crawley可以高速爬取对应网站的内容,支持关系和非关系数据库,数据可以导出为JSON、XML等。
项目地址:http://project.crawley-cloud.com/
- Portia
Portia是一个开源可视化爬虫工具,可让您在不需要任何编程知识的情况下爬取网站!简单地注释您感兴趣的页面,Portia将创建一个蜘蛛来从类似的页面提取数据。
项目地址:https://github.com/scrapinghub/portia
- Newspaper
Newspaper可以用来提取新闻、文章和内容分析。使用多线程,支持10多种语言等。
项目地址:https://github.com/codelucas/newspaper
- Grab
Grab是一个用于构建Web刮板的Python框架。借助Grab,您可以构建各种复杂的网页抓取工具,从简单的5行脚本到处理数百万个网页的复杂异步网站抓取工具。Grab提供一个API用于执行网络请求和处理接收到的内容,例如与HTML文档的DOM树进行交互。
项目地址:http://docs.grablib.org/en/latest/#grab-spider-user-manual
- Cola
Cola是一个分布式的爬虫框架,对于用户来说,只需编写几个特定的函数,而无需关注分布式运行的细节。任务会自动分配到多台机器上,整个过程对用户是透明的。 *
项目地址:https://github.com/chineking/cola
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
