可视化爬虫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插件,在网上有各种各样的方法,博主使用过的也不止一种,但是留下的印象总是时好时不好,同样的方法也不确定那一次能 ...
随机推荐
- Scrum Meeting Beta - 6
Scrum Meeting Beta - 6 NewTeam 2017/12/5 地点:主南201 任务反馈 团队成员 完成任务 计划任务 安万贺 完成了离线状态本地存储的读取Issue #133Pu ...
- windows多线程(十) 生产者与消费者问题
一.概述 生产者消费者问题是一个著名的线程同步问题,该问题描述如下:有一个生产者在生产产品,这些产品将提供给若干个消费者去消费,为了使生产者和消费者能并发执行,在两者之间设置一个具有多个缓冲区的缓冲池 ...
- Android Service执行unbind后再次执行bind的问题
在执行了startService.bindService.unbindService之后,再次执行bindService.这时发现Service的onBind方法并没有执行,而是执行的onRebind ...
- dividend = Integer.parseInt(args[0])参数问题
先来一段代码: package yichang; public class MyExceptionTest { public static void main(String[] args) { int ...
- Idea(二) 解决IDEA卡顿问题及相关基本配置
一.IDEA太卡顿,设置使用IDEA的内存 在IDEA的安装目录下的bin目录下: 打开设置: 将idea.exe.vmoptions文件内由-server-Xms128m-Xmx512m-XX:Ma ...
- Tomcat 启动流程
- 关于OpenGL游戏全屏模式的设置
使用DirectX的API的话可以给游戏窗口设置指定的显示器和全屏独占模式,但是如果使用OpenGL的API就比较遗憾不能直接设置. 以下内容基于Windows系统. 如果使用OpenGL渲染,第一步 ...
- DAY6-Flask项目
1.ViewModel:处理原始数据:裁剪修饰合并 2.访问静态资源 默认情况下,访问的路径为app根目录的下的static文件,为什么说app是根目录而不是fisher.py下,因为在实例化对象的时 ...
- 【刷题】BZOJ 5091 [Lydsy1711月赛]摘苹果
Description 小Q的工作是采摘花园里的苹果.在花园中有n棵苹果树以及m条双向道路,苹果树编号依次为1到n,每条道路的两端连接着两棵不同的苹果树.假设第i棵苹果树连接着d_i条道路.小Q将会按 ...
- 【刷题】BZOJ 4816 [Sdoi2017]数字表格
Description Doris刚刚学习了fibonacci数列.用f[i]表示数列的第i项,那么 f[0]=0 f[1]=1 f[n]=f[n-1]+f[n-2],n>=2 Doris用老师 ...