zoukankan      html  css  js  c++  java
  • Python数据挖掘_Python2模块Spynner的安装(安装失败)

    我们一起来学习如何使用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
    

     安装完后,我们继续来尝试安装命令

    文章持续更新

  • 相关阅读:
    range用法(倒序取值)
    set操作
    map集合 可变对象
    元组
    list操作
    列表推导式、字典推导式、集合推导式
    调用父类方法
    谷歌浏览器真机调试的方法
    css3 flex弹性盒自动铺满写法
    微信小程序保存海报的方法
  • 原文地址:https://www.cnblogs.com/susmote/p/8907031.html
Copyright © 2011-2022 走看看