pyspider运行卡死在result_worker starting 的解决办法

最近在学习网络爬虫的一些知识,接触到pyspider框架,但在下载安装的过程当中遇到不少坑,记录一下。

环境:win10+anaconda3+python3.7

一、Pyspider和PhantomJS的安装

    pyspider的安装网上有很多教程,可以参照这个:戳这里

    PhantomJS下载之后需要配置环境变量,我是直接把它放在python.exe的文件夹中,因为该路径已经在环境变量中。

     

    下载完之后运行spider all查看是否成功。 

二、关闭防火墙

     在window环境下需要关闭防火墙:

     控制面板-->Windows Defender 防火墙 -->关闭防火墙

     最好确保自己的电脑还有其他的安全软件,以免引发其他安全问题。

三、将async关键字改掉

     在python3.7中async成为了关键字,而pyspider中并没有对新版本做出相应的修改,仍将async当作变量名,所以会报错。

     解决办法:把所有命名为async的变量改掉,如改为async_或者async1

     这里可以用vscode打开yourpath\Lib\site-packages\pyspider

     然后直接在左侧搜索栏中查找,就可以直接找到包含该变量名的所有文件(注意是所有,没改全webui还是运行不了)

      

四、修改wsgidav版本

      因为wsgidav3.0的版本不兼容,所以替换为2.4.1 

pip uninstall wsgidav
pip install wsgidav==2.4.1

五、还不行的话试试重启再看报什么错    

     以上的步骤我都做了,然而发现还是卡在了result_worker starting,无奈,只能从网上找到这么多方法。

     于是我重启了电脑,用控制台再运行了一次spider all,发现这次爆出了一些新的错误:

     ImportError: cannot import name DispatcherMiddleware错误  

     把错误百度查一下,发现主要是werkzeug版本不对的问题,于是: 

#卸载
python -m pip uninstall werkzeug
#安装指定版本
python -m pip install werkzeug==0.16.0

 六、总结

     经过上面五个步骤就成功运行啦,访问http://localhost:5000/可以成功打开pyspider dashboard

     

      pyspider不能成功运行主要是防火墙,关键字冲突,版本不对应的问题,而且哪些包的版本不对应每台机器可能不一样,所以可以重启试试,再运行看哪些包版本还有问题。

      如果这篇文章对你有用的话,可以点个赞再走哦!

 

参考资料:

【1】https://blog.csdn.net/ShiMengRan107/article/details/104395751/

【2】https://blog.csdn.net/weixin_39190382/article/details/104923254

【3】https://segmentfault.com/q/1010000015188569/a-1020000015213575

  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: 如果您的 PySpider 一直卡在 "result_worker starting...",可能是因为 result_worker 进程无法正常启动。 以下是一些可能的解决方法: 1. 检查日志:可以检查 PySpider 的日志,查看是否有任何错误或警告信息。日志文件通常位于 `logs/` 目录下。 2. 检查端口:确保您使用的端口没有被占用。您可以尝试使用其他端口启动 PySpider,例如: ``` pyspider all --webui-port=8081 --scheduler-port=23333 --result-port=25555 ``` 3. 升级 PySpider:尝试升级到最新版本的 PySpider,可能会修复已知的问题。 4. 重启机器:有时候重启机器可以解决一些问题,尝试重启机器并再次启动 PySpider。 5. 检查依赖项:确保您的系统中已安装了 PySpider 所需的所有依赖项。您可以尝试重新安装依赖项或使用虚拟环境来隔离依赖项。 如果以上方法均未能解决问题,您可以尝试在 PySpider 的 GitHub 仓库上提交一个 issue,以获取更多的帮助。 ### 回答2: pyspider 是一种基于 Python 的开源网络爬虫框架,用于快速、高效地进行网络数据采集和处理。在使用 pyspider 进行爬虫任务时,可能会遇到一直卡在 "result_worker starting..." 的问题。 "result_worker starting..." 是指 pyspider 的结果处理模块在启动过程中出现了问题,导致无法正常运行。这个问题可能有多种原因,下面我将介绍几个可能的解决方法: 1. 检查配置文件:首先确保你的配置文件中没有错误,特别是数据库和消息队列的连接设置是否正确。可以参考 pyspider 的官方文档来配置正确的参数。 2. 检查网络连接:确保你的网络连接是正常的,可以尝试访问相关的数据库和消息队列服务,确保它们都可以正常访问和连接。 3. 检查依赖库:如果你的系统中安装了多个版本的 Python 或依赖库,可能会导致冲突或不兼容的问题。可以尝试重新安装或更新相关的依赖库来解决冲突问题。 4. 启用日志调试:在启动 pyspider 时,可以使用 `-q` 参数来启用详细的日志输出,这样可以更好地了解问题的具体原因。可以通过查看日志来获取更多的调试信息,以便进行问题排查。 5. 参考社区和文档:pyspider 有一个活跃的社区,你可以在社区中提问和寻求帮助。此外,可以查阅 pyspider 的官方文档和相关教程,寻找更多的解决方案和建议。 希望以上几点能够帮助你解决 pyspider 卡在 "result_worker starting..." 的问题,并能够顺利运行你的爬虫任务。如果问题仍然存在,建议你提供更多的细节信息,以便更好地帮助你解决问题。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值