pyspider的安装过程中的那些坑
我的开发环境
python3.7 win64
pyspider框架介绍
爬虫框架:简化代码量,架构更清晰,效率更高!
-
pyspider
: 由中国人编写的强大的网络爬虫框架!pyspider支持JavaScript渲染的过程是依赖PhantomJS的,所以需要先安装好PhantomJS
安装pyspider:
pip3 install pyspider
第一个报错
Windows下安装可能会出现以下错误:
ERROR: Command errored out with exit status 10: python setup.py egg_info Check the logs for full command output.
解决方案:
下载pycurl的wheel文件:官方地址
注意版本对应,比如我的是python 3.7然后64位windows操作系统下载:pycurl-7.43.0.4-cp37-cp37m-win_amd64.whl
G:\install\【Python】开发工具\python3爬虫项目开发实战>pip3 install pycurl-7.43.0.4-cp37-cp37m-win_amd64.whl
# 再次执行
pip3 install pyspider
验证安装:
pyspider all
第二个报错
3.7版本会出现以下问题:
python3.7不兼容pyspider问题(出现占用关键字的问题)
Python 3.5中引入了async和await,它们在Python 3.7中成为关键字。
所以需要替换一下关键字。
主要改动三个文件:
1、\Python\Lib\site-packages\pyspider\run.py
2、\Python\Lib\site-packages\pyspider\fetcher\tornado_fetcher.py
3、\Lib\site-packages\pyspider\webui\app.py
CTRL+F查找 async 替换掉。(可替换为shark)
!!!替换的时候注意,只替换变量名和参数名,其余部分不能替换
第三个报错
别急坑还有很多,然后的坑!!!
1.yspider会默认安装wsgidav3.x,解决办法为先把3.x卸载,再装2.x
pip uninstall wsgidav
python -m pip install wsgidav==2.4.1
在安装包中找到pyspider的资源包,然后找到webui文件里面的webdav.py文件打开,修改第209行。
#把 'domaincontroller': NeedAuthController(app),
#修改为:
'http_authenticator':{
'HTTPAuthenticator':NeedAuthController(app),
},
第四个错
然后还是不行!😢
werkzeug的版本为1.0.0,这个版本中没有DispatcherMiddleware方法,所以还是降低版本。
python -m pip uninstall werkzeug # 卸载
python -m pip install werkzeug==0.16.1 #安装0.16.1版本
再次启动,终于成功!🙂
关于pyspider的详细使用教程可以参考《python3 网络爬虫开发项目实战》作者崔庆才的个人bolg:友情链接