最近在学习Python爬虫、想再自己本地MAC下搭建PySpider框架,经历了步步为坑的遭遇。。。
首先安装一下PySpider
我用的是Python3、pip3,所以我下载操作都是以Python3、pip3 为主。
先打开pyspider文档:http://docs.pyspider.org/en/latest/
安装命令:pip3 install pyspider
启动:pyspinder all
第一个坑来了:
其实这个问题就是pyspider中把async设置为关键字了,而async可是python3.7的关键字啊。所以解决办法就是 打开:/usr/local/lib/python3.7/site-packages/pyspider/run.py,将async改为:asyncs(建议使用编辑器批量修改,具体改为什么、随意)
改完之后、很多用户可能会直接启动:pyspider all 结果发现还是不行
不过这次不是关键字冲突了、这个是说: phantomjs 没找到、需要安装phantomjs。了解过pyspider的都知道、pyspider+phantomjs 配合是很好用的。接下来就安装phantomjs
1).下载phantomjs(http://phantomjs.org/download.html)官网下载mac版本
2).下载后直接解压,将解压后的phantomjs-2.1.1-macosx文件夹放到你想放的目录下(随意、开心就好)
然后执行:pwd 把路径复制一份、备用
3).添加全局变量,终端输入vim .bash_profile 添加语句(vim 语法相信大家是有点基础的。这里简单列几个一会用的上的。插入:i,退出:电脑的 esc 按键,:wq! 保存并关闭)
打开后:i 直接复制过去 export PATH=/你放的目录路径[上面 pwd 的结果]/phantomjs-2.1.1-macosx/bin:$PATH
5).终端输入source .bash_profile 让刚才的环境变量生效
6).终端输入 phantomjs --version 检测是否配置成功
如果出现版本号、接OK了
接下来是不是想直接启动一下 pyspider all 结果发现还是不行
这次出现的又是第一次出现的关键字冲突问题 --- 没办法、就是这么坑
一样的操作、打开:/usr/local/lib/python3.7/site-packages/pyspider/fetcher/tornado_fetcher.py,将async改为:asyncs(建议使用编辑器批量修改,具体改为什么、随意)
继续测试、启动:pyspider all
(这里简单说一下、每次启动的时候都会出现以下情况)
这个是端口占用问一下、经常使用linux 的人这个应该不是什么问题
处理方式: 查看占用端口的PID lsof -i:25555 杀死这个PID:kill -9 57349
接下来继续启动、你会发现,还是报错。。 是不是醉了,淡定、淡定、淡定……
其实这个还是老问题:关键字占用问题、同样的去修改即可:
打开:/usr/local/lib/python3.7/site-packages/pyspider/webui/app.py 将async改为:asyncs(建议使用编辑器批量修改,具体改为什么、随意)
修改完、杀死进程、启动
对、是的、又爆了…… 而且这个问题比较尴尬,这个是pycurl 安装错误问题、网上有好多教程
下面的操作是无效的
( pip uninstall pycurl
export PYCURL_SSL_LIBRARY=openssl
pip install pycurl --compile )
结果你会发现、不行,怎么办?我测试了直接在github 上下载源码、然后安装,还是不行
别急、解决方法来了:
pip3 uninstall pycurl# 卸载库
export PYCURL_SSL_LIBRARY=openssl
export LDFLAGS=-L/usr/local/opt/openssl/lib
export CPPFLAGS=-I/usr/local/opt/openssl/include# openssl相关头文件路径
pip3 install pycurl --compile --no-cache-dir # 重新编译安装
执行完之后测试:
OK!!!但是、但是、但是……别激动,可能还有问题
再次启动:
是的、这是我遇到的最后一个坑了、
这是WsgiDAV发布了版本 pre-release 3.x导致的,所以只要把版本降下来就好了。
执行命令:pip3 install wsgidav==2.4.1
终于完成了、现在可以很嚣张的启动了
查看端口占用程序、杀死、启动:
打开浏览器:http:// localhost:5000 /
完成!!!
网友评论