前言

pyspider 带有强大的 WebUI、脚本编辑器、任务监控器、项目管理器以及结果处理器,它支持多种数据库后端、多种消息队列、JavaScript 渲染页面的爬取,使用起来很方便,但是它的启动过程很不稳定,归纳总结以下可能会出现的问题。

pyspider GitHub 地址:GitHub - binux/pyspider

官方文档地址:Introduction - pyspider

准备过程

pyspider 是支持 JavaScript 渲染的,这个过程依赖于 PhantomJS,所以需要安装 PhantomJS

PhantomJS 安装 :官方网站下载对应的安装包: PhantomJS - Scriptable Headless Browser

下载完成后,将 PhantomJS 可执行文件所在的路径(windows:phantomjs-2.1.1-windows\bin)配置到系统环境变量中,也可以直接将 PhantomJS.exe 文件直接复制到 Python 的 Script 文件夹下,在 cmd 中可验证配置是否完成:

# 以下即为配置完成
C:\Users\Administrator>PhantomJS
phantomjs>
# 查看版本
C:\Users\Administrator>phantomjs -v
2.1.1

pyspider 安装:

pip3 install pyspider

pyspider 启动:

# 1.
pyspider all
# 2.
pyspider

常见错误与解决

错误一: 无效语法

Python 3.5 中引入了 async,但在 Python 3.7 中成为关键字,而 pyspider 中并没有对新版本做出相应的修改,仍将 async 当作变量名,所以会报错,解决方法将变量名为 async 的进行更改替换:

找出 pyspider 文件夹下的相关文件进行修改,我的在 Anaconda 环境下(G:\Anaconda\Lib\site-packages\pyspider):

需要更改的 pyhton 脚本为:

  • pyspider\webui\app.py
  • pyspider\run.py
  • pyspider\fetcher\tornado_fetcher.py

参考修改 tornado 中导入过相关模块的文件:

  • curl_httpclient.py
  • httpclient.py
  • simple_httpclient.py

修改方法:pycharm 中 Ctrl + R 批量修改;VS Code 中导入 pyspider 文件夹 点击搜索,即可文件夹中相关关键字一次性更改:

我这里将 async 改为了 rose,可自定义更改名称,eg:async_、async_1、async_mode

错误二:无效配置

wsgidav 发布的 3.0.0 版本目前仍然是测试版,相对于 2.x 更改了一些用法,pyspider 的 3.0 及以上版本在安装时,会默认安装 wsgidav 的 3.0.0 版本,需要降版本:

# 卸载
pip3 uninstall wsgidav
# 安装
python -m pip install wsgidav==2.4.1

错误三:PyCurl 安装错误

Command “python setup.py egg_info” failed with error code 1

这是  PyCurl 安装错误,需要安装 PyCurl 库:

安装地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycurl,下载相应的 wheel 文件即可

# 安装命令
pip3 install pycurl‑7.44.1‑pp38‑pypy38_pp73‑win_amd64.whl

Linux 下可参考:https://imlonghao.com/19.html

错误四:导入失败

这是 wsgidav 发布了版本 pre-release 3.x 导致的,所以需要降版本:

# 卸载
python -m pip  uninstall werkzeug
# 安装
python -m pip install werkzeug==0.16.1

错误五:一直卡在 result_worker starting

解决方法一:

这也是我一直没解决的问题,翻阅了很多文章,发现问题在于 pyspider 框架并不稳定,以下博客看到的方法很有用:pyspider一直卡在result_worker starting的解决办法 ,同时开启两个终端启动 pyspider,然后关闭第一个终端,如果没用就多试几次:

解决方法二:

如果觉得上述方法很麻烦,可以将以下命令写成一个 bat 脚本,新建 txt 文件写入后保存,将后缀名改成 bat 即可,这样一次性即运行三个 cmd 窗口,若没有一个成功,则重新运行:

cmd /c:执行字符串指定的命令然后终止 

start cmd /c pyspider all
start cmd /c pyspider all
start cmd /c pyspider all

注:第一天用没问题,第二天再打开出现了无限弹窗情况,望了解的大佬评论讲解一下

建议:测试之前设置一个终止进程,txt 文档输入以下命令保存后将后缀改为 bat 即可

taskkill /f /im cmd.exe

错误六:启动成功后,代理 WebUI 界面(localhost:5000),页面存在乱码且不能创建项目

更换浏览器打开或者多尝试几次,要么就重启 pyspider 即可成功,感觉确实不稳定:

总结

以上为 pyspider 启动中常见的问题,不知 pyspider  是在 Windows 下不稳定还是怎么样,启动并不顺畅,如有了解或者指正文章问题的,欢迎评论区留言交流~

参考文章:

https://blog.csdn.net/m0_47170642/

https://blog.csdn.net/SiHann/

http://www.kaotop.com/it/313592.html

https://blog.csdn.net/weixin_39190382/

https://blog.csdn.net/qq_43342294/

https://zhuanlan.zhihu.com/p/31739955

pyspider 常见启动问题解决汇总【detailed】相关推荐

  1. 低压抽屉柜常见故障处理方法_低压配电柜常见故障问题解决汇总

    大家一定对日常生活中的低压配电柜有所了解,但它经常出现的一些故障问题你知道如何解决吗?接下来由石家庄配电柜厂家德兰电气就给大家讲解低压配电柜常见的故障与原因分析,供大家借鉴解决我们所遇到的问题. 低压 ...

  2. alias常见小问题汇总20例

    alias常见小问题汇总20例 1.alias里的各种物体怎么对齐? 使用一条线(或是格点)和PIVOT来搬移对象对齐即可 ALIAS不像RHINO等其它软件提供某些快速的ICON指令 不过他强大的编 ...

  3. 欧拉系统安装与部署NextCloud与常见部署问题解决以及数据盘迁移

    欧拉系统部署NextCloud与常见部署问题解决以及数据盘迁移 一.欧拉系统安装 二.openEuler安装图形界面Ukui 三.yum安装的npm包进行本地保存设置(个人任务需要) 四.部署next ...

  4. 寻仙获取目录服务器信息失败,〖寻仙〗常见游戏问题解决办法!

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 [寻仙]常见游戏问题解决办法!2008-05-20 21:371.更新时提示 "网络错误,登陆失败" [寻仙]常见游戏问题解决办法!2 ...

  5. 计算机无法快速预览pdf,常见电脑问题解决大全.pdf

    常见电脑问题解决大全 电脑故障千奇百怪````我给点资料 希望能给大家点帮助 : (一) 主板篇 电脑出现的故障原因扑朔迷离,让人难以捉摸.并且由于Windows 操 作系统的组件相对复杂,电脑一旦出 ...

  6. 计算机硬盘打开就失效了吗,硬盘引起的电脑启动故障汇总接解决方案

    原标题:硬盘引起的电脑启动故障汇总接解决方案 这一期小编我为网友们带来硬盘报错的解决方案,希望能帮到有需要的朋友. 1.Hard disk controller failure(硬盘控制器失效) 这是 ...

  7. Ubuntu常见系统问题解决方式

    Ubuntu常见系统问题解决方式 Ubuntu每次开机后提示检测到系统程序出现问题的解决方法 Ubuntu循环登陆问题 问题描述 原因 解决方法 文件夹打开缓慢 Ubuntu启动后GUI界面卡住不动 ...

  8. 编写java程序的常见问题_Java程序的编写与执行、Java新手常见的问题解决

    原标题:Java程序的编写与执行.Java新手常见的问题解决 今天,我们来写一段Java程序.然后看看Java程序是如何执行的,以及Java新手小白遇到的问题和解决办法. HelloWorld的编写 ...

  9. 速达服务器账套定期维护么,速达软件常见操作问题解决方法

    <速达软件常见操作问题解决方法>由会员分享,可在线阅读,更多相关<速达软件常见操作问题解决方法(11页珍藏版)>请在人人文库网上搜索. 1.速达软件常见操作问题解决方法,速达软 ...

最新文章

  1. 2019年热销微型笔记本计算机排名,2019年笔记本销量排行_电脑品牌排名:2019笔记本电脑前十排行...
  2. 共享变量类vb.net中的共享方法、共享变量、全局变量
  3. 五分钟内搭建的混沌电路
  4. hdu2588 GCD
  5. linux查看lvm命令,linux lvm常用命令总结
  6. 人工智能:第九章 Agent (艾真体)
  7. itextsharp php,C#_C#使用iTextSharp设置PDF所有页面背景图功能实例,本文实例讲述了C#使用iTextSharp - phpStudy...
  8. TCP三次握手及关闭时的2MSL分析
  9. LeetCode 2207. 字符串中最多数目的子字符串(前缀和)
  10. MacPort 的使用
  11. LA 4254 贪心
  12. php的关系数据库,php – 从关系数据库到非关系数据库的数据规范化的最佳实践...
  13. Emmet 快速编写html代码
  14. 跟着百度学PHP[4]OOP面对对象编程-16-switch逻辑就语句
  15. 中国计算机协会a类,中国计算机学会推荐A类国际学术会议列表.DOC
  16. 程序员怎么做可以安全通过试用期
  17. C/C++ 机房预约系统
  18. CCF CSP 认证相关
  19. 拍摄UFP 单一职责原则
  20. 蔡氏电路matlab,蔡氏电路MATLAB混沌仿真

热门文章

  1. 本地 服务器 共享文件,本地和云服务器文件共享
  2. 中国人工智能学会通讯——深蓝、沃森与AlphaGo
  3. ubuntu10上安装万能五笔
  4. 高通5G智能平台概述
  5. C# listbox 和propertyGrid结合使用
  6. 基于Java的图形化中国象棋游戏+PPT文档
  7. 海洋科学创意馆完成基础装修
  8. 三菱PLC转盘机程序 此程序已经实际设备上批量应用
  9. springboot+jsoup抓取新闻网站信息
  10. SecureCRT 设置背景和字体大小的方法