Python 爬虫进阶二之 PySpider 框架安装配置

PySpider官方文档

项目地址
官方文档

安装

phantomjs
PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API。它全面支持 web 而不需浏览器支持,其快速、原生支持各种 Web 标准:DOM 处理、CSS 选择器、JSON、Canvas 和 SVG。 PhantomJS 可以用于页面自动化、网络监测、网页截屏以及无界面测试等。 安装 以上附有官方安装方式,如果你是 Ubuntu 或 Mac OS X 用户,可以直接用命令来安装 Ubuntu:

sudo apt-get install phantomjs

Mac OS X:

brew install phantomjs

pyspider

pip install pyspider

安装pyspider可能有以下错误

 Using cached pycurl-7.43.0.6.tar.gz (222 kB)ERROR: Command errored out with exit status 10:

因为安装pycurl出错,pycurl-7.43.0.6.tar.gz没有安装成功。进入pythonlibs下载lib安装。首先查看平台支持的版本。

python -m pip debug --verbose
...
Compatible tags: 24cp36-cp36m-win_amd64cp36-abi3-win_amd64cp36-none-win_amd64
...

进入pythonlibs,没有pycurl-7.43.0.6.tar.gz,平台支持的有pycurl‑7.43.0.4‑cp36‑cp36m‑win_amd64.whl,那就安装这个。下载这个到本地。
在这里插入图片描述
安装pycurl

pip3 install C:\Python36\Scripts\pycurl-7.43.0.4-cp36-cp36m-win_amd64.whl
Processing c:\python36\scripts\pycurl-7.43.0.4-cp36-cp36m-win_amd64.whl
Installing collected packages: pycurl
Successfully installed pycurl-7.43.0.4

然后安装pyspider

pip3 install pyspider

安装成功后,命令行输入

pyspider all

有错误信息

  File "c:\python36\lib\site-packages\wsgidav\wsgidav_app.py", line 118, in _check_configraise ValueError("Invalid configuration:\n  - " + "\n  - ".join(errors))
ValueError: Invalid configuration:- Deprecated option 'domaincontroller': use 'http_authenticator.domain_controller' instead.

配置PhantomJS
windows:在官网下载对应版本的程序,然后放到python安装目录的python.exe同级目录下。
依然有错误

  File "c:\python36\lib\site-packages\pyspider\webui\app.py", line 64, in runfrom werkzeug.wsgi import DispatcherMiddleware
ImportError: cannot import name 'DispatcherMiddleware'

发现还是版本的原因,werkzeug的版本为1.0.0,这个版本中没有DispatcherMiddleware方法,所以还是降低版本。
注意降低版本不能低于0.15版本,因为我们的pyspider要求大于0.15版本以上

pip3 uninstall werkzeug
pip3 install werkzeug==0.16.1

参考
启动pyspider

pyspider all

然后浏览器访问 http://localhost:5000 观察一下效果,如果可以正常出现 PySpider 的页面,那证明一切 OK 在此附图一张,如果写了爬虫,之后的界面。
在这里插入图片描述

常见错误

我曾遇到过的一个错误: PySpider HTTP 599: SSL certificate problem 错误的解决方法 ,后来在作者那发了 issue 得到了答案,其他的暂时没什么问题。 不过发现有的小伙伴提了各种各样的问题啊,不过我确实都没遇到过,我再 Win10,Linux Ubuntu,Linux CentOS,Mac OS X 都成功运行。不过确实有些奇怪的问题,跑着跑着崩了,一点就崩了我也就比较纳闷了。 如果大家有问题,可以看看作者项目里面有没有类似的 issue,另外也推荐大家直接到作者的 GitHub 上发 issue。 毕竟,这个框架不是我写的。 在此附上 Issue 地址: PySpider Issue

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402231.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Exynos4412 中断驱动开发(三)—— 设备树中中断节点的创建

提到中断就必须了解到GIC,下面先了解一下GIC 一、GIC概念 GIC(Generic Interrupt Controller)是ARM公司提供的一个通用的中断控制器。GIC通过AMBA(Advanced Microcontroller Bus Architecture)这样的片上总线连接到一个…

Exynos4412 中断驱动开发(二)—— 中断处理流程分析

前面已经学习了中断的注册过程,下面由一张流程图来看一下当中断发生时的处理流程: 中断发生之后处理流程 a -- 具体的CPU architecture相关模块进行现场保护,然后调用machine driver执行对应的中断处理handler; b -- machine driver对应中断处…

Exynos4412 中断驱动开发(一)—— 中断基础及中断的注册过程

一、中断基础概念 所谓中断,指CPU在执行程序的过程中,出现了某些突发事件即待处理,CPU必须暂停当前的程序。转去处理突发事件,处理完毕后CPU又返回原程序被中断的位置并继续执行。 1、中断分类 a -- 内部中断和外部中断 根据中断的…

rubymine 调试 redmine

1、安装debase和ruby-debug-ide包。(注意版本,rubymine 8.0.2下,bitnami下的版本需安装debase -v 0.2.1版本,网上有文章说用debase -v 0.2.2beta6。容易在rubymine启动调试时出现找不到ruby-debug-ide等错误提示) 启动…

Linux 设备驱动中的 I/O模型(二)—— 异步通知和异步I/O

阻塞和非阻塞访问、poll() 函数提供了较多地解决设备访问的机制,但是如果有了异步通知整套机制就更加完善了。 异步通知的意思是:一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,这一点非常类…

判断链表是否有环

链表有环的情况一般是链表的尾指向前面的节点而不是null,如head->node1->node2->node3->node4->tail->node2,该链表存在环。判断环是否存在可以借助两个指针,一个指针每次迭代只移动一步,第二个指针每次迭代移动…

Linux 设备驱动中的 I/O模型(一)—— 阻塞和非阻塞I/O

在前面学习网络编程时,曾经学过I/O模型 Linux 系统应用编程——网络编程(I/O模型),下面学习一下I/O模型在设备驱动中的应用。 回顾一下在Unix/Linux下共有五种I/O模型,分别是: a -- 阻塞I/O b -- 非阻塞I/O…

Python 爬虫进阶六之多进程的用法

python 中的多线程其实并不是真正的多线程,并不能做到充分利用多核 CPU 资源。 如果想要充分利用,在 python 中大部分情况需要使用多进程,那么这个包就叫做 multiprocessing。 借助它,可以轻松完成从单进程到并发执行的转换。mult…

Linux 设备驱动的并发控制

Linux 设备驱动中必须要解决的一个问题是多个进程对共享的资源的并发访问,并发的访问会导致竞态,即使是经验丰富的驱动工程师也常常设计出包含并发问题bug 的驱动程序。 一、基础概念 1、Linux 并发相关基础概念 a -- 并发(concurrency&#…

第三章:多坐标系

第一节:为什么要有多坐标系 当我们使用一个坐标系来描绘整个场景的时候,场景中的任意点都可以用该坐标系描述,此时如果有一只羊一遍摇动着耳朵,一边走,这个时候如果进行坐标的转换会发现异常的麻烦,此时如果…

Linux 设备驱动开发 —— 设备树在platform设备驱动中的使用

关与设备树的概念,我们在Exynos4412 内核移植(六)—— 设备树解析 里面已经学习过,下面看一下设备树在设备驱动开发中起到的作用 Device Tree是一种描述硬件的数据结构,设备树源(Device Tree Source)文件(以…

Android 网络通信框架Volley简介(Google IO 2013)

1. 什么是Volley 在这之前,我们在程序中需要和网络通信的时候,大体使用的东西莫过于AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Google I/O 2013上&…

Linux 设备驱动开发 —— platform设备驱动应用实例解析

前面我们已经学习了platform设备的理论知识Linux 设备驱动开发 —— platform 设备驱动 ,下面将通过一个实例来深入我们的学习。 一、platform 驱动的工作过程 platform模型驱动编程,需要实现platform_device(设备)与platform_driver(驱动&am…

Python爬虫入门四urllib库的高级用法

1.设置headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些 Headers 的属性。 首先,打开我们的浏览器,调试浏览器…

进程上下文、中断上下文及原子上下文

谈论进程上下文 、中断上下文 、 原子上下文之前,有必要讨论下两个概念: a -- 上下文 上下文是从英文context翻译过来,指的是一种环境。相对于进程而言,就是进程执行时的环境; 具体来说就是各个变量和数据,…

Linux 文件系统与设备文件系统 (二)—— sysfs 文件系统与Linux设备模型

提到 sysfs 文件系统 ,必须先需要了解的是Linux设备模型,什么是Linux设备模型呢? 一、Linux 设备模型 1、设备模型概述 从2.6版本开始,Linux开发团队便为内核建立起一个统一的设备模型。在以前的内核中没有独立的数据结构用来让内…

Python爬虫入门七正则表达式

已经搞定了怎样获取页面的内容,不过还差一步,这么多杂乱的代码夹杂文字我们怎样把它提取出来整理呢?下面就开始介绍一个十分强大的工具,正则表达式 1.了解正则表达式 正则表达式是用来匹配字符串非常强大的工具,在其…

Linux 文件系统与设备文件系统 (一)—— udev 设备文件系统

一、什么是Linux设备文件系统 首先我们不看定义,定义总是太抽象很难理解,我们先看现象。当我们往开发板上移植了一个新的文件系统之后(假如各种设备驱动也移植好了),启动开发板,我们用串口工具进入开发板&a…

情人节,教大家使用css画出一朵玫瑰花。

情人节到了,给大家来一朵高端的玫瑰花。 在网上看到的一个canvas实现的玫瑰花,效果很好,但是代码被压缩过,也没有注释,看的云里雾里的。 今天我教大脚用CSS来实现一朵玫瑰花。 先看效果 首先我们画出一个花瓣 1、画出一…

Linux 字符设备驱动开发基础(六)—— VFS 虚拟文件系统解析

一、VFS 虚拟文件系统基础概念 Linux 允许众多不同的文件系统共存,并支持跨文件系统的文件操作,这是因为有虚拟文件系统的存在。虚拟文件系统,即VFS(Virtual File System)是 Linux 内核中的一个软件抽象层。它通过一些…