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环境,这个就不用多说,自己安装就行了
(1) 安装wheel
pip install wheel
(2) 安装XML解析支持
pip install lxml
(3) 安装对象接口库
pip install zope.interface
(4) 安装pyOpenSSL
pip install pyOpenSSL
(5) 安装twisted
不能通过pip安装,只能通过whl安装
根据自己的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资源
官方网站
中文教程
源码地址
中文社区
5 扩展知识
Python爬虫框架当然不这一个,其他一些框架也各有特点,只是没有Scrapy这么通用和流行,这里做个简单介绍,有兴趣可以自己搜索。
-
PySpider
pyspider 是一个用python实现的功能强大的网络爬虫系统,能在浏览器界面上进行脚本的编写,功能的调度和爬取结果的实时查看,后端使用常用的数据库进行爬取结果的存储,还能定时设置任务与任务优先级等。
-
Crawley
Crawley可以高速爬取对应网站的内容,支持关系和非关系数据库,数据可以导出为JSON、XML等。
-
Portia
Portia是一个开源可视化爬虫工具,可让您在不需要任何编程知识的情况下爬取网站!简单地注释您感兴趣的页面,Portia将创建一个蜘蛛来从类似的页面提取数据。
-
Newspaper
Newspaper可以用来提取新闻、文章和内容分析。使用多线程,支持10多种语言等。
-
Grab
Grab是一个用于构建Web刮板的Python框架。借助Grab,您可以构建各种复杂的网页抓取工具,从简单的5行脚本到处理数百万个网页的复杂异步网站抓取工具。Grab提供一个API用于执行网络请求和处理接收到的内容,例如与HTML文档的DOM树进行交互。
项目地址:http://docs.grablib.org/en/latest/#grab-spider-user-manual
-
Cola
Cola是一个分布式的爬虫框架,对于用户来说,只需编写几个特定的函数,而无需关注分布式运行的细节。任务会自动分配到多台机器上,整个过程对用户是透明的。 *