pyspider安装使用遇到的坑

摘要:
安装pyspider花了很多时间。最后,安装pyspider是可以的。执行命令pip3installpyspider以提示Successfully installedFlask-1.0.2Flask-Lin-0.4.1Jinja2-2.10MarkupSafe-1.0PyYAML-3.13Werkzeug-0.14.1click-6.7cssselect-1.0.3defosedxml-0.5.0itsdangerous-0.24jsmin-2.2.2lxml-4.2.5pyquery-1.4.0pyspider-0.3.10tblib-1.3.2tornado-4.53u-msgpack-python-2.50wsg idav-2.4.1 2当PySpider在python 3.7上运行时,它将报告错误文件“/usr/local/lib/python3.7/site packages/pyspider/run.py”,line231async=True,get_object=False,no_Input=False):^SyntaxError:invalidsyntax原因是python3.7中的async已成为关键字。所以出现了这个错误。解决方案如下:在安装包中找到pyspider的资源包,在webui文件中打开webdav.py文件,然后修改第209行。将“domaincontroller”:NeedAuthController修改为“http_Authenticator”:{'HTTPAuthenticator':NeedAuthController,},pyspideral的第一次执行可能会在result_workerstarting。。。在这里,您需要使用Ctrl+C中断,然后重新打开CMD并输入pyspideral。

一、pip install pyspider 安装出现错误:

Command "python setup.py egg_info" failed with error code 10 in C:UsersxxxAppDataLocalTemppip-install-tc5uvu7lpycurl 

经过网上大拿的经验需要安装wheel,执行命令pip3 install wheel安装,提示Successfully installed wheel-0.31.1代表安装成功,然后访问https://www.lfd.uci.edu/~gohlke/pythonlibs/下载相关安装文件,具体如下:

PycURL, a interface to the libcurl library.
pycurl‑7.43.1‑cp27‑cp27m‑win32.whl
pycurl‑7.43.1‑cp27‑cp27m‑win_amd64.whl
pycurl‑7.43.1‑cp34‑cp34m‑win32.whl
pycurl‑7.43.1‑cp34‑cp34m‑win_amd64.whl
pycurl‑7.43.1‑cp35‑cp35m‑win32.whl
pycurl‑7.43.1‑cp35‑cp35m‑win_amd64.whl
pycurl‑7.43.1‑cp36‑cp36m‑win32.whl
pycurl‑7.43.1‑cp36‑cp36m‑win_amd64.whl
pycurl‑7.43.1‑cp37‑cp37m‑win32.whl
pycurl‑7.43.1‑cp37‑cp37m‑win_amd64.whl
具体下载版本根据你使用的环境来定,比如我的是python3.7,然后python是32位版本,则需要选择pycurl‑7.43.1‑cp37‑cp37m‑win32.whl进行下载,注意:32或64位版本不是电脑的版本,是安装python的版本!!!
下载后进行安装,命令 pip3 install D:pythondemopycurl-7.43.1-cp37-cp37m-win_amd64.whl执行,如果报错:
pycurl-7.43.1-cp37-cp37m-win_amd64.whl is not a supported wheel on this platform.
代表你安装的版本不对,就是上面所述的那个,我电脑是64位的,python是32位的,所以报错,然后下载pycurl‑7.43.1‑cp37‑cp37m‑win32.whl后再执行命令pip3 install D:pythondemopycurl-7.43.1-cp37-cp37m-win32.whl安装即可,提示Successfully installed pycurl-7.43.1及安装成功!
费了很大事,最后再安装pyspider就OK了,执行命令pip3 install pyspider提示
Successfully installed Flask-1.0.2 Flask-Login-0.4.1 Jinja2-2.10 MarkupSafe-1.0 PyYAML-3.13 Werkzeug-0.14.1 click-6.7 cssselect-1.0.3 defusedxml-0.5.0 itsdangerous-0.24 jsmin-2.2.2 lxml-4.2.5 pyquery-1.4.0 pyspider-0.3.10 tblib-1.3.2 tornado-4.5.3 u-msgpack-python-2.5.0 wsgidav-2.4.1

二、PySpider在Python3.7上运行时会报错

File "/usr/local/lib/python3.7/site-packages/pyspider/run.py", line 231
async=True, get_object=False, no_input=False):
^
SyntaxError: invalid syntax
原因是python3.7中async已经变成了关键字。因此出现这个错误。
修改方式是手动替换一下

下面位置的async改为mark_async
/usr/local/lib/python3.7/site-packages/pyspider/run.py 的231行、245行(两个)、365行
/usr/local/lib/python3.7/site-packages/pyspider/webui/app.py 的95行
/usr/local/lib/python3.7/site-packages/pyspider/fetcher/tornado_fetcher.py 的81行、89行(两个)、95行、117行

 三、

ValueError: Invalid configuration:
- Deprecated option 'domaincontroller': use 'http_authenticator.domain_controller' instead.

3.1 最后定位在了wsgidav3.x问题,pyspider会默认安装wsgidav3.x,解决办法为先把3.x卸载,再装2.x(pip install wsgidav会默认安装2.x我安装的是2.4.1

pip uninstall wsgidav
pip install wsgidav
如果安装的wsgidav本还是3.x,可以在卸载这个版本之后,在安装命令后面加上具体版本号

python -m pip install wsgidav==2.4.1, 此方法未解决问题

3.2 原因是因为WsgiDAV发布了版本 pre-release 3.x。

解决方法如下:

在安装包中找到pyspider的资源包,然后找到webui文件里面的webdav.py文件打开,修改第209行即可。

把 'domaincontroller': NeedAuthController(app),

修改为:

'http_authenticator':{
'HTTPAuthenticator':NeedAuthController(app),
},
首次执行pyspider all可能会卡在result_worker starting ...这里,需要用Ctrl + C 中断后重新打开CMD 输入pyspider all就成功了。

四、在实际的调试中发现pyspider的Web预览界面只有一点非常小

原因:web预览框过小的原因在于页面元素的css属性height被替换为60px
所以我们需要更改CSS文件的内容,但是这个应该不是所有浏览器都通用,只是测试了Chrome浏览器是可以的

修改debug.min.css文件内容如下: https://www.jianshu.com/p/7bff6fd4dc1b

参考内容:

1. https://segmentfault.com/a/1190000019487737?utm_source=tag-newest

2. https://www.cnblogs.com/kerbside/p/9630388.html#commentform

3. https://blog.csdn.net/qq_37253540/article/details/88196994

4. https://www.jakehu.me/2019/pyspider/

5. https://www.jianshu.com/p/7bff6fd4dc1b 

免责声明:文章转载自《pyspider安装使用遇到的坑》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQL Server 2008新特性——更改跟踪CentOS7 vsftpd 安装及配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

tesseract-ocr

标签:pytesseract.pytesseract   winerror    其实也不算自己写的,在网上东找找西找找,合一块问题就解决了。 和谐社会的程序猿不都这样么。。 上正菜。 先安装pillow windows 10上面先打开命令提示符: 注:不知道为啥我装python 3.5的时候蛋疼的选择了管理员安装,所以运行命令提示符的话也需要管理员权限。...

ThinkPad X1 Carbon 2016 (4th)安装黑苹果MacOS High Sierra(10.13)

原文参考:https://forum.51nb.com/forum.php?mod=viewthread&tid=1808874&extra=page=1&page=1 不同的是,maj的配置是i7,我的是i5,主板芯片组也不一样。他的EFI大部分能通用。 安装镜像:黑果小兵(macOS High Sierra 10.13.1(17...

Delphi国内优秀网站及开源项目

Delphi编程技巧大全http://www.delphitop.com/ Delphi盒子www.2ccc.com 2Pascal-新时代的Pascalhttp://www.2pascal.com WeDelphihttp://www.WeDelphi.com 新大富翁论坛http://www.dfwlt.com/forum.php 万一的博客:ht...

安装Manjaro KDE 18.04

Manjaro 官网:https://www.manjaro.org/ 各版本ISO下载:https://www.manjaro.org/download/ XFCE,KDE和GNOME为旗舰版 同时满足这四个选项的只有XFCE、KDE这两个版本,这算是我选择KDE的一个原因吧 安装过程和Ubuntu的安装基本类似 !所以可以参考:记 Win10 +...

Linux命令整理-Kali

网络相关 桥接模式下无法联网:设置桥接网卡地址为指定网卡(如dual band) 1 route -n 查看网关/子网掩码 2 虚拟机中屏幕太小-设置中调节分辨率 3 DNS配置:cat /etc/resolv.conf 4 网卡设置:cat /etc/network/interfaces 5 重启网络服务:service networking r...

最全前端资源汇集

前些日子从@张鑫旭微博处得一份推荐 (Front-end-tutorial),号称 最全的资源教程 -前端涉及的所有知识体系;有粗略查看,果然“叹为观止”,至少比想象中涉猎丰富许多;果断有Fork了来:Front-end-tutorial;本就有收藏&分享欲,这种事儿早期也想做了,勘叹见识未广而深;幸遇这良心收集,得以借他人之酒杯,一浇我心之夙愿块...