树莓派安装pyspider
安装pyspider 目的,通过该爬虫,获取一些关注的网站的更新信息,然后通过罗微信进行推送。pyspider 使用起来比较容易,比scrapy简单,直接使用的是网页上调试,编程序。
测试的树莓派是 3b+ 系统是 stretch
armv7 python3.5
1.直接运行指令,系统会自动下载依赖的包。
pip3 install pyspider
tips:从下载来看,pip3下载了 tornado, lxml, MarkupSafe, Jinja2, tblib, pycurl, itsdangerous, Werkzeug, click, Flask, cssselect, chardet, pyquery, u-msgpack-python, defusedxml, PyYAML, json5, six, wsgidav, certifi, idna, urllib3, requests, Flask-Login, pyspider等库,比较多。
<>但是都是从www.piwheels.org站点上下载的,速度就是10k/s,稍微一个运气不好就是 timeout’,这个可以通过2种方式来修改,一是直接使用pip -i参数,指定下载的镜像站点。二是在当前用户目录下(linux测试)mkdir .pip/pip.conf 然后搜索下网页,手动指定下载站点。不用说都明白这两种方式的优缺点,一是零时性的,二是针对当前用户生效的。具体的配置可以通过搜索引擎找到,pip 国内源等关键字。参考:
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:http://mirrors.aliyun.com/pypi/simple/
豆瓣:http://pypi.douban.com/simple/
pip3 install pyspider -i https://pypi.tuna.tsinghua.edu.cn/simple
2.安装时候出现的错误
2.1显示红色的文字就是出错了,根据原因,再次重复执行安装命令即可,直到pyspider成功运行。
2.2安装称成功后,运行pyspider,提示bash: pyspider: command not found。解决方法1搜索了下,部分网上提示首卸载后从新安装。我测试了从新运行命令,重新启动板子,无效。在测试在指令前增加sudo ,成功解决该问题。
2.3在数据pyspider后,又出现了 - Deprecated option ‘domaincontroller’: use ‘http_authenticator.domain_controller’ instead.
错误。 第二次遇到这个问题,大概率都是安装的包wsgidav的版本太高,pyspider没有更新?猜测。解决方法就是降低 依赖包的版本。
pip3 unstall wsgidav
pip3 install wsgidav==2.4.1
方案2
在安装包中找到pyspider的资源包,然后找到webui文件里面的webdav.py文件打开,修改第209行即可。,文件路径根据提示修改。
把
'domaincontroller': NeedAuthController(app),
修改为:
'http_authenticator':{
'HTTPAuthenticator':NeedAuthController(app),
},
2.4又遇到的问题为 from werkzeug.wsgi import DispatcherMiddleware
ImportError: cannot import name ‘DispatcherMiddleware’
还是包的版本高了…
解决方式是
pip3 uninstall werkzeug -y
pip3 install werkzeug==0.16.1
安装结束后,运行pyspider 正常。
后续安装phantomjs