python3.7安装pyspider
1.安装pycurl
下载pycurl-7.45.1-cp37-cp37m-win_amd64.whl,这里下载:https://www.lfd.uci.edu/~gohlke/pythonlibs/
# pip install pycurl-7.45.1-cp37-cp37m-win_amd64.whl
2.换flask ,werkzeug, wsgidav版本
# python -m pip uninstall werkzeug wsgidav flask # python -m pip install werkzeug==0.16.1 # python -m pip install wsgidav==2.4.1 # python -m pip install flask==1.0.2
3.async和await从 python3.7 开始已经加入保留关键字中., 所以async不能作为函数的参数名.改这些:
python位置...\Lib\site-packages\pyspider
修改
- run.py
- fetcher\tornado_fetcher.py
- webui\app.py
全字匹配修改async -> async_mode 之类其他名字。
4.修改pyspider\webui\webdav.py 第209 行:
# 'domaincontroller': NeedAuthController(app), 'http_authenticator':{ 'HTTPAuthenticator':NeedAuthController(app), },
5安装pyspider:
# pip install pyspider
6.下载phantomjs.exe放到 python.exe相同目录下,
下载地址为:https://phantomjs.org/download.html
7.启动pyspider
# pyspider all
如果出现pyspider 一直卡在 result worker starting的现象,
- 可能是因为 python 版本的问题,3.7.4 以及所以来的包的版本问题,导致启动卡死
- 关闭防火墙应该是为了让 phantomjs 应用能够访问网络,可以通过设置应用可以通过防火墙而避免关闭防火墙(因为启动不了 pyspider 在关闭防火墙的情况下起不了多大效果)
- 多个启动老是很麻烦可以,使用以下脚本进行启动 (win 下文件后缀名为 bat,保存后双击运行即可),如果其中一个启动成功,关闭其他cmd窗口即可:
start cmd /c pyspider start cmd /c pyspider start cmd /c pyspider
启动成功后,然后打开浏览器,输入http://localhost:5000/
参考:
https://github.com/binux/pyspider
https://www.cnblogs.com/yansc/p/15701624.html
http://www.kaotop.com/it/313592.html