我们一起来学习如何使用Spynner进行数据抓取
单数据抓取机顾名思义就是单进程的数据抓取形式,通常在数据不是很多的时候被应用
首先我们要介绍Spynner
Spynner在抓取时可以出现一个浏览器,在浏览器中可以观察抓取过程的变化,Spynner还可以加载javascript生成的动态内容,然后抓取这部分的动态内容
Spynner其他功能与requests模块基本相同,除了上面的功能时spynner独有的
Spynner的官方开源地址 https://github.com/makinacorpus/spynner
安装spynner
在这里需要注意的是Spynner,目前是只支持python2的版本的,为了适应改变,我们暂时改用python2的环境
使用命令安装即可,如下图
或者你也可以使用pycharm进行安装
搜索安装即可
事实上并没有那么简单,我在安装时出现很多问题,每次都不能正常安装
怎么弄都没有结果
之后选择去查看官方文档,一步一步的试,最后终于安装上了
首先我的电脑是Python2.7和Python3.6都安装上的,这个就要非常注意pip了
他决定你的模块是安装在哪个环境
通过对各版本号的对比,发现只有pip2是针对python2.7的
所以我们接下来的安装全部都是使用pip2
首先我们要安装Sip模块
Sip SIP是一种Python工具,用于自动生成Python与C、C++库的绑定。SIP最初是在1998年用PyQt开发的,用于Python与Qt GUI toolkit的绑定,但适用于生成任何C或C++库的绑定。
Sip的官网 https://www.riverbankcomputing.com/software/sip/intro
只有安装完Sip后才能继续下面的安装步骤
安装完后,我们就要开始安装PyQt,因为Spynner需要模拟浏览器的功能,所以我们要安装PyQt
PyQt中有非常强大的webkit,结合Spynner具有执行javascript的能力,而且Spynner是基于PyQt的,所以必须要安装PyQt
通过不断的尝试,用pip2去安装PyQt,但每次都提示没有找到这个模块
这时,我通过搜索引擎,发现这些库都是不支持Python2的,这时真的是无语了
最后看到一篇文章,Python2的Qt的包名是叫 python-qt,仿佛黎明再现
最终使用这个命令安装上了支持python2的Pyqt支持库
但必须要吐槽,这安装也太慢了,
经过漫长的等待
成功安装
你以为就结束了吗,当然没有
然后我在去安装spynner
报了一大堆的错,当然是安装失败了
继续解决问题
通过搜索发现是没有安装 libxml2 和 libxslt 两个库,安装上就行了。
为了方便,我们要通过brew安装以上两个库
在安装前我们先要安装Mac上的brew,运行一下命令即可成功安装brew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装速度还是一如既往的慢
最终安装成功
然后我们通过brew来安装所需要的依赖文件
brew install libxml2 brew install libxslt brew link libxml2 --force brew link libxslt --force
作为以上步骤后,还要用pip安装下面一个依赖文件
pip2 install lxml
成功安装
然后我们再来运行命令安装spynner
注意,需要用root权限运行上面的命令
最后报错
继续解决问题,通过搜索,发现是需要安装一个依赖库 libffi
运行一下命令
brew install libffi
安装完后,我们继续来尝试安装命令
文章持续更新