pyspider 常见启动问题解决汇总【detailed】

您所在的位置:网站首页 少女心的网名有哪些 pyspider 常见启动问题解决汇总【detailed】

pyspider 常见启动问题解决汇总【detailed】

2024-01-21 23:16| 来源: 网络整理| 查看: 265

前言 

        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.pypyspider\run.pypyspider\fetcher\tornado_fetcher.py

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

curl_httpclient.pyhttpclient.pysimple_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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3