可视化爬虫Portia安装和部署踩过的坑
背景
Scrapy爬虫的确是好使好用,去过scrapinghub的官网浏览一下,更是赞叹可视化爬虫的犀利。scrapinghub有一系列的产品,开源了大部分项目,Portia负责可视化爬虫的编辑,SpiderCloud负责云端爬虫的部署,Scrapy是实现他们底层的技术。国内的可视化爬虫技术也有不少,据我所知就这几种:
如果有其他优秀的可视化爬虫我没有提到,大家可以补充。他们的功能暂不讨论,但他们都没有开源的,不方便我们研究。
而scrapinghub将Portia开源出来了,我们可以通过这个渠道了解可视化的爬虫。虽然开源出来了,可是安装真的不容易啊。
安装
安装之前交代一下,系统和环境吧!
- 系统:Ubuntu14 server
- Python:2.7
- 目标版本:2.0.8
有这两个就够了,这两个是必须的。至于Python的版本可不可以是3.0以上呢?我只能说在3.0以上的版本环境下,我没有安装成功过,可能是我个人操作失误的原因。
如果仅仅是使用的话,docker和本地安装都是可以的,至于Vagrant可不可以,我就没试过了。
我这里优先说本地部署的方式,因为这种方式以后要改造代码再部署的话比较方便。官方文档说的比较简单,按照官网文档来安装,肯定要踩不少的坑。
我们拟定将Portia安装在/opt目录下面
1、克隆Portia
cd /opt
sudo git clone https://github.com/scrapinghub/portia.git
如果没有git的话,执行sudo apt-get install git安装Git
2、不要使用虚拟环境
不知道你们有没有强迫症,反正我是有的,用什么pyenv和virtualenv搞过虚拟环境,让我踩了不少坑。里面有什么坑呢?
- 安装的脚本需要新建文件,需要sudo,如果使用了sudo,你的pyenv就白装了,sudo会使用系统的Python2.7。
- portia和splash的脚本的写法不同,导致pyenv和virtualenv生效的情况也不一样。
结论是,我输了,我使用系统的Python2.7来安装。
3、安装脚本
cd portia
sudo ./provision.sh install_deps install_splash install_python_deps
接下来可以等待安装完成。
4、替换下载慢的脚本(可选)
这步是可选的,如果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把
#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
最后等待安装,当然,如果你网络好,这步可以忽略。
5、配置nginx
vi nginx/nginx.conf
修改:
root /opt/portia/portiaui/dist;
location /static {
alias /opt/portia/portiaui/dist;
}
保存退出。
执行sudo ./provision.sh configure_nginx configure_initctl
6、安装前端依赖和UI
sudo ./provision.sh install_frontend_deps build_assets
7、运行
前面的准备工作都做好了,现在运行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掉
可视化爬虫Portia安装和部署踩过的坑的更多相关文章
- CentOS7.2上用KVM安装虚拟机window10踩过的坑
最近两个星期一直在琢磨kvm安装window10操作系统,并且通过桥接模式与外界通信,经历了九九八十一难,终于搞定.下面就记录以下我们在探索的过程中踩过的坑. 安装KVM 1. 系统要求:需要一台可以 ...
- Linux学习、Mongodb部署 踩到的坑学习
一.安装Centos 7虚拟机系统 1.系统安装 下载阿里云的镜像,下载后安装,默认全程图形界面:虚拟机使用Win10自带的Hyper:碰到的坑记录下 1.在Hyper加载镜像启动的时候,提示“虚拟机 ...
- 安装Apache所踩的的坑
刚开始接触PHP等一些脚本语言,需要建立一个本地的服务器,变进行安装了Apache.在其中碰到了诸多问题,和大家一一分享一下. 一.刚解压完成后使用cmd面板进入解压完成的apache的bin目录下, ...
- supervisor安装使用和我踩过的坑
什么是supervisor: supervisor是一款用python编写的进程管理工具,主要运行于linux系统,不支持windows系统,目前还不能运行于python3下. step1:安装sup ...
- IONIC和Cordova安装、打包踩过的坑
1.问题1:直接执行npm install -g cordova ionic,因为网络原因,执行不成功 解决方案:将npm映射到淘宝服务器:npm install -g cnpm --registry ...
- webpack4.0在Mac下的安装配置及踩到的坑
一.什么是webpack是一个前端资源加载/打包工具.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源.它做的事情是,分析你的项目结构,找到JavaScript模块以 ...
- Mysql5.7.19压缩版安装步骤及踩过的坑
安装Mysql5.7.19压缩版 一:下载压缩包 1.从MySQL官网下载MySQL Community Server 5.7.19,此版本为免费版. 2.下载完成之后解压缩,打开之后文件夹如下: ...
- 安装Mycat 曾经踩的那些坑
1. INFO | jvm | ----/--/-- --:--:-- | Caused by: io.mycat.config.util.ConfigException: schema TEST d ...
- 最细的eclipse 安装maven踩过的坑
Eclipse安装maven插件踩过的坑 在线安装maven eclipse安装maven插件,在网上有各种各样的方法,博主使用过的也不止一种,但是留下的印象总是时好时不好,同样的方法也不确定那一次能 ...
随机推荐
- jenkins构建启动失败
有一个项目,在启动的时候读取了环境变量,第一次写了一个启动脚本如下 #!/bin/bash --login jarFile=$ pid=`ps -ef | grep $jarFile | grep ' ...
- HBase 架构与工作原理1 - HBase 的数据模型
本文系转载,如有侵权,请联系我:likui0913@gmail.com 一.应用场景 HBase 与 Google 的 BigTable 极为相似,可以说 HBase 就是根据 BigTable 设计 ...
- [转帖] InfiniBand主流厂商和产品分析
https://blog.csdn.net/swingwang/article/details/72935461 InfiniBand主流厂商和产品分析 2017年06月08日 22:03:46 Ha ...
- vue使用axios发送数据请求
本文章是基于vue-cli脚手架下开发 1.安装 npm install axios --s npm install vue-axios --s 2.使用.在index.js中(渲染App组件的那个j ...
- true和false
下面这些值在JavaScript中都是falsy: false 0 (数字零) "" (空字符串) null undefined NaN (一个特殊的Number值,意为Not-a ...
- RTMP、RTSP、HTTP视频协议详解(附:直播流地址、播放软件)
- bzoj 2124 等差子序列 (线段树维护hash)
2124: 等差子序列 Time Limit: 3 Sec Memory Limit: 259 MBSubmit: 1922 Solved: 714[Submit][Status][Discuss ...
- php的数组转为对象
有时候数组要转为对象操作,用对象的指向操作符,有两种方法 方法一: $arr=['a'=>10,'b'=>100,'c'=>'Hello']; $obj=(Object)$arr; ...
- noi.acNOIP模拟赛5-count
题目链接 戳我 题意简述 你有一个n+1个数的序列,都是1~n,其中只有一个有重复,求每个长度的本质不同的子序列个数.\(mod 1e9+7\). sol 说起来也很简单,设相同的数出现的位置为\(l ...
- BZOJ2437 [Noi2011]兔兔与蛋蛋 【博弈论 + 二分图匹配】
题目链接 BZOJ2437 题解 和JSOI2014很像 只不过这题动态删点 如果我们把空位置看做\(X\)的话,就会发现我们走的路径是一个\(OX\)交错的路径 然后将图二分染色,当前点必胜,当且仅 ...