Scrapy爬虫的确是好使好用,去过scrapinghub的官网浏览一下,更是赞叹可视化爬虫的犀利。scrapinghub有一系列的产品,开源了大部分项目,Portia负责可视化爬虫的编辑,SpiderCloud负责云端爬虫的部署,Scrapy是实现他们底层的技术。国内的可视化爬虫技术也有很多,据我所知就这几种:前端
若是有其余优秀的可视化爬虫我没有提到,你们能够补充。他们的功能暂不讨论,但他们都没有开源的,不方便咱们研究。
而scrapinghub将Portia开源出来了,咱们能够经过这个渠道了解可视化的爬虫。虽然开源出来了,但是安装真的不容易啊。python
安装以前交代一下,系统和环境吧!nginx
有这两个就够了,这两个是必须的。至于Python的版本可不能够是3.0以上呢?我只能说在3.0以上的版本环境下,我没有安装成功过,多是我我的操做失误的缘由。
若是仅仅是使用的话,docker和本地安装都是能够的,至于Vagrant可不能够,我就没试过了。
我这里优先说本地部署的方式,由于这种方式之后要改造代码再部署的话比较方便。官方文档说的比较简单,按照官网文档来安装,确定要踩很多的坑。git
咱们拟定将Portia安装在/opt目录下面github
cd /opt
sudo git clone https://github.com/scrapinghub/portia.git
若是没有git的话,执行sudo apt-get install git
安装Gitdocker
不知道大家有没有强迫症,反正我是有的,用什么pyenv和virtualenv搞过虚拟环境,让我踩了很多坑。里面有什么坑呢?api
结论是,我输了,我使用系统的Python2.7来安装。浏览器
cd portia
sudo ./provision.sh install_deps install_splash install_python_deps
接下来能够等待安装完成。网络
这步是可选的,若是sip或者PyQt下载的比较慢,能够先手动下载好。
http://sourceforge.net/projects/pyqt/files/sip/sip-4.17/sip-4.17.tar.gz
http://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-5.5.1/PyQt-gpl-5.5.1.tar.gz
分别更名为sip.tar.gz和pyqt5.tar.gz放在/downlaods目录中,/downloads没有就新建一个。
而后vi /tmp/splash-2.3.x/dockerfiles/splash/provision.sh
把frontend
#curl -L -o /downloads/sip.tar.gz http://sourceforge.net/projects/pyqt/files/sip/sip-${SPLASH_SIP_VERSION}/sip-${SPLASH_SIP_VERSION}.tar.gz && \ #curl -L -o /downloads/pyqt5.tar.gz http://sourceforge.net/projects/pyqt/files/PyQt5/PyQt-${SPLASH_PYQT_VERSION}/PyQt-gpl-${SPLASH_PYQT_VERSION}.tar.gz && \
注释掉,保存退出。再次在portia目录下执行./provision.sh install_splash
最后等待安装,固然,若是你网络好,这步能够忽略。
vi nginx/nginx.conf
修改:
root /opt/portia/portiaui/dist; location /static { alias /opt/portia/portiaui/dist; }
保存退出。
执行sudo ./provision.sh configure_nginx configure_initctl
sudo ./provision.sh install_frontend_deps build_assets
前面的准备工做都作好了,如今运行Portia
export PYTHONPATH='/opt/portia/portia_server:/opt/portia/slyd:/opt/portia/slybot'
slyd/bin/slyd -p 9002 -r portiaui/dist & portia_server/manage.py runserver
如今打开浏览器http://localhost:9001爽爽吧!
在ctrl+c停掉应用后,再次启动会被提示端口已占用。这个时候使用ps -ef | grep slyd,把对应的slyd端口kill掉