pyspider 启动所遇到的坑
环境:
- python 3.7.4
- pip 21.2.4
1. 启动 async 关键字报错的问题
参考链接:https://www.cnblogs.com/Mayfly-nymph/p/10808088.html
原因: python 3.7 中 async 成为了保留关键字
解决:替换 pyspider 包下的其中几个 py 文件中 async 替换为新变量名如:async_mode
推荐:如果使用 vscode 打开文件夹可以通过侧边 🔍全局搜索 async 关键字,类似超级搜索
2. pyspider 一直卡在 result worker starting 的解决办法
参考链接:https://blog.csdn.net/qq_40765537/article/details/105457499
原因:至今不明,按照以上方式进行处理,仍然报错,直到这位大佬的处理方法
解决方式:在卡死的过程中新启一个进程,成功启动!!!
3. 对 2 问题的总结
- 可能是因为 python 版本的问题,3.7.4 以及所以来的包的版本问题,导致启动卡死 https://ask.csdn.net/questions/773842
- 关闭防火墙应该是为了让 phantomjs 应用能够访问网络,可以通过设置应用可以通过防火墙而避免关闭防火墙(因为启动不了 pyspider 在关闭防火墙的情况下起不了多大效果)
- 如果按照 https://blog.csdn.net/qq_40765537/article/details/105457499 中多个启动老是很麻烦可以,使用以下脚本进行启动 (win 下文件后缀名为 bat,保存后双击运行即可),如果其中一个启动成功,关闭其他cmd窗口即可
切记:不要将bat文件命名为 pyspider !!!!!!!!!!!!!!! 否则将会循环开启新窗口,导致系统资源耗尽start cmd /c pyspider start cmd /c pyspider start cmd /c pyspider
运行以上脚本后,某个窗口中出现web ui start on 5000
即可访问 pyspider 的后台页面:localhost:5000