Python3网络爬虫实战-10、爬虫框架的安装:PySpider、Scrapy

我们直接用 Requests、Selenium 等库写爬虫,如果爬取量不是太大,速度要求不高,是完全可以满足需求的。但是写多了会发现其内部许多代码和组件是可以复用的,如果我们把这些组件抽离出来,将各个功能模块化,就慢慢会形成一个框架雏形,久而久之,爬虫框架就诞生了。

利用框架我们可以不用再去关心某些功能的具体实现,只需要去关心爬取逻辑即可。有了它们,可以大大简化代码量,而且架构也会变得清晰,爬取效率也会高许多。所以如果对爬虫有一定基础,上手框架是一种好的选择。

本书主要介绍的爬虫框架有PySpider和Scrapy,本节我们来介绍一下 PySpider、Scrapy 以及它们的一些扩展库的安装方式。

PySpider的安装

PySpider 是国人 binux 编写的强大的网络爬虫框架,它带有强大的 WebUI、脚本编辑器、任务监控器、项目管理器以及结果处理器,同时它支持多种数据库后端、多种消息队列,另外它还支持 JavaScript 渲染页面的爬取,使用起来非常方便,本节介绍一下它的安装过程。

1. 相关链接

2. 准备工作

PySpider 是支持 JavaScript 渲染的,而这个过程是依赖于 PhantomJS 的,所以还需要安装 PhantomJS,所以在安装之前请安装好 PhantomJS,安装方式在前文有介绍。

3. Pip安装

推荐使用 Pip 安装,命令如下:

pip3 install pyspider
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

命令执行完毕即可完成安装。

4. 常见错误

Windows 下可能会出现这样的错误提示:Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-vXo1W3/pycurl
这个是 PyCurl 安装错误,一般会出现在 Windows 下,需要安装 PyCurl 库,下载链接为:http://www.lfd.uci.edu/~gohlk...,找到对应 Python 版本然后下载相应的 Wheel 文件。
如 Windows 64 位,Python3.6 则下载 pycurl?7.43.0?cp36?cp36m?win_amd64.whl,随后用 Pip 安装即可,命令如下:

pip3 install pycurl?7.43.0?cp36?cp36m?win_amd64.whl

Linux 下如果遇到 PyCurl 的错误可以参考本文:https://imlonghao.com/19.html

Mac遇到这种情况,执行下面操作:

brew install openssl

openssl version
查看版本
find /usr/local -name ssl.h

可以看到形如:
usr/local/Cellar/openssl/1.0.2s/include/openssl/ssl.h

添加环境变量
export PYCURL_SSL_LIBRARY=openssl
export LDFLAGS=-L/usr/local/Cellar/openssl/1.0.2s/lib
export CPPFLAGS=-I/usr/local/Cellar/openssl/1.0.2s/include

 pip3 install pyspider

5. 验证安装

安装完成之后,可以直接在命令行下启动 PySpider:

pyspider all

图 1-75 控制台
这时 PySpider 的 Web 服务就会在本地 5000 端口运行,直接在浏览器打开:http://localhost:5000/ 即可进入 PySpider 的 WebUI 管理页面,如图 1-76 所示:

图 1-76 管理页面
如果出现类似页面那证明 PySpider 已经安装成功了。
在后文会介绍 PySpider 的详细用法。

这里有一个深坑,PySpider在Python3.7上运行时会报错

File "/usr/local/lib/python3.7/site-packages/pyspider/run.py", line 231
    async=True, get_object=False, no_input=False):
        ^
SyntaxError: invalid syntax

原因是python3.7中async已经变成了关键字。因此出现这个错误。
修改方式是手动替换一下

下面位置的async改为mark_async

/usr/local/lib/python3.7/site-packages/pyspider/run.py  的231行、245行(两个)、365行

/usr/local/lib/python3.7/site-packages/pyspider/webui/app.py 的95行

/usr/local/lib/python3.7/site-packages/pyspider/fetcher/tornado_fetcher.py 的81行、89行(两个)、95行、117行

Scrapy的安装

Scrapy 是一个十分强大的爬虫框架,依赖的库比较多,至少需要依赖库有 Twisted 14.0,lxml 3.4,pyOpenSSL 0.14。而在不同平台环境又各不相同,所以在安装之前最好确保把一些基本库安装好。本节介绍一下 Scrapy 在不同平台的安装方法。

1. 相关链接

3. Mac下的安装

在 Mac 上构建 Scrapy 的依赖库需要 C 编译器以及开发头文件,它一般由 Xcode 提供,运行如下命令安装即可:

xcode-select --install

随后利用 Pip 安装 Scrapy 即可,运行如下命令:

pip3 install Scrapy

运行完毕之后即可完成 Scrapy 的安装。

4. 验证安装

安装之后,在命令行下输入 scrapy,如果出现类似下方的结果,就证明 Scrapy 安装成功,如图 1-80 所示:

图 1-80 验证安装

5. 常见错误

pkg_resources.VersionConflict: (six 1.5.2 (/usr/lib/python3/dist-packages), Requirement.parse(‘six>=1.6.0‘))

six 包版本过低,six包是一个提供兼容 Python2 和 Python3 的库,升级 six 包即可:

sudo pip3 install -U six

c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory

这是在 Linux 下常出现的错误,缺少 Libffi 这个库。什么是 libffi?“FFI” 的全名是 Foreign Function Interface,通常指的是允许以一种语言编写的代码调用另一种语言的代码。而 Libffi 库只提供了最底层的、与架构相关的、完整的”FFI”。
安装相应的库即可。
Ubuntu、Debian:

sudo apt-get install build-essential libssl-dev libffi-dev python3-dev

CentOS、RedHat:

sudo yum install gcc libffi-devel python-devel openssl-devel

Command "python setup.py egg_info" failed with error code 1 in/tmp/pip-build/cryptography/

这是缺少加密的相关组件,利用Pip 安装即可。

pip3 install cryptography

ImportError: No module named ‘packaging‘

缺少 packaging 这个包,它提供了 Python 包的核心功能,利用 Pip 安装即可。


ImportError: No module named ‘_cffi_backend‘

缺少 cffi 包,使用 Pip 安装即可:

pip3 install cffi

ImportError: No module named ‘pyparsing‘
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

缺少 pyparsing 包,使用 Pip 安装即可:

pip3 install pyparsing appdirs

原文地址:https://blog.51cto.com/14445003/2424880

时间: 2024-08-29 19:52:32

Python3网络爬虫实战-10、爬虫框架的安装:PySpider、Scrapy的相关文章

2017.08.10 Python爬虫实战之爬虫攻防篇

1.封锁user-agent破解: user-agent是浏览器的身份标识,网站就是通过user-agent来确定浏览器类型的.有很多网站会拒绝不符合一定标准的user-agent请求网页,如果网站将频繁访问网站的user-agent作为爬虫的标志,然后加入黑名单该怎么办? (1)首先在meiju项目下,settings.py的同级目录创建middlewares目录,进入middlewares目录,创建__init__.py,将middlewares目录变成一个Python模块 (2)创建资源文

爬虫实战:爬虫之 web 自动化终极杀手 ( 上)

欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:陈象 导语: 最近写了好几个简单的爬虫,踩了好几个深坑,在这里总结一下,给大家在编写爬虫时候能给点思路.本次爬虫内容有:静态页面的爬取.动态页面的爬取.web自动化终极爬虫. 分析: 数据获取(主要靠爬虫) 静态网页爬取 动态网页爬取 数据存储(python excel存储) Python Excel操作,保存结果 数据获取实战: 百度音乐(静态网页) 分析步骤1 . 打开百度音乐:http://music.baidu.com/

windows10+Python3.6+Anaconda3+tensorflow1.10.0配置和安装

windows10+Python3.6+Anaconda3+tensorflow1.10.0# Anaconda3安装自行下载安装,之后dos或Anaconda Prompt终端查看Anaconda3版本(base) C:\Users\jiangshan>conda -Vconda 4.6.8windows10下使用Anaconda3安装tensorflow1.10.0# TenssorFlow目前还不支持Python 3.7,使用Anaconda3创建Python 3.6虚拟环境# 创建基于p

Python3网络爬虫实战-3、数据库的安装:MySQL、MongoDB、Redis

抓取下网页代码之后,下一步就是从网页中提取信息,提取信息的方式有多种多样,可以使用正则来提取,但是写起来会相对比较繁琐.在这里还有许多强大的解析库,如 LXML.BeautifulSoup.PyQuery 等等,提供了非常强大的解析方法,如 XPath 解析.CSS 选择器解析等等,利用它们我们可以高效便捷地从从网页中提取出有效信息. 本节我们就来介绍一下这些库的安装过程. 1.2.1 LXML的安装 LXML 是 Python 的一个解析库,支持 HTML 和 XML 的解析,支持 XPath

2017.08.10 Python爬虫实战之爬虫攻防

1.创建一般的爬虫:一般来说,小于100次访问的爬虫都无须为此担心 (1)以爬取美剧天堂为例,来源网页:http://www.meijutt.com/new100.html,项目准备: scrapy startproject meiju100 F:\Python\PythonWebScraping\PythonScrapyProject>cd meiju100 F:\Python\PythonWebScraping\PythonScrapyProject\meiju100>scrapy gen

python应用之爬虫实战1 爬虫基本原理

知识内容: 1.爬虫是什么 2.爬虫的基本流程 3.request和response 4.python爬虫工具 参考:http://www.cnblogs.com/linhaifeng/articles/7773496.html 一.爬虫是什么 1.爬虫定义 爬虫:把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的猎物/数据,  爬虫实质是向网站发起请求,获取资源后分析并提取有用数据的程序  2.爬虫分类 定向:爬取特定领域

Muduo网络库实战(一):安装和配置

1. 参考资料 <Muduo_网络库使用手册> 2. 实战记录 1) muduo依赖项安装 centos安装cmake命令:# yum install cmake centos安装libboost库:推荐使用源码安装,因为命令安装后发现muduo编译出错: (链接:boost命令安装&&源码安装) 备注: tar.bz2 解压命令 tar -jxvf *.tar.bz2 2)muduo安装位置 cd muduo源文件夹 =>../build文件夹中

2017年最新Python3.6网络爬虫实战案例基础+实战+框架+分布式高清视频教程

课程简介: 这是一套目前为止我觉得最适合小白学习的体系非常完整的Python爬虫课程,使用的Python3.6的版本,用到anaconda来开发python程序,老师讲解的很细致,课程体系设置的也非常棒,完全是从浅入深一点点讲解,从Python爬虫环境的安装开始,讲解了最最基本的urllib包如何使用,如何解析request请求内容,刷选有用数据,像ajax,post,html,json等等都非常细致的一一讲解,然后逐步深入到如何利用cookie,ip代{过}{滤}理池的技术,来解决登陆验证与防

python爬虫随笔-scrapy框架(1)——scrapy框架的安装和结构介绍

scrapy框架简介 Scrapy,Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试.(引用自:百度百科) scrapy官方网站:https://scrapy.org/ scrapy官方文档:https://doc.scrapy.org/en/latest/ scrapy框架安装 首先我们安装scrapy,使用如下命令 pip install scrapy 此时很多人应该都会遇到如