很早之前了解爬虫,比较了几款爬虫框架,最终选定CrawLab,觉得有良好的UI界面,功能比较齐全,自动部署也很方便。在Windows系统下借助Docker Quickstart Terminal、Kitematic (Alpha)、Oracle VM VirtualBox“三件套”进行尝试,得以一窥真容。等到后面真正使用时,再次打开却已经无法访问,后面试过各种调试及重新配置,都无法再次成功。 
  无奈之下只能在Linux(CentOS)系统上进行尝试,官方文档也是有相关内容指定。限于硬件资源有限,也是通过安装CentOS虚拟机的形式配置,希望可以尽快评估可行性。
  CentOS镜像:CentOS-8.5.2111-x86_64-dvd1.iso
  虚拟机软件:VMware Workstation Pro 17
  资源不多,参数大概设定:![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1493d3f3abbb4a6eaace35ded22d1a5a.png)

主要过程

CentOS自带Python3.6,进入CentOS虚拟机后:

1.yum安装:

sudo yum install -y yum-utils
此处可能会出现如下字样问题:Fix Failed to download metadata for repo,网上都可以找到解决方案,大体如下:
Step 1: Go to the /etc/yum.repos.d/ directory.
[root@autocontroller ~]# cd /etc/yum.repos.d/

Step 2: Run the below commands
[root@autocontroller ~]# sed -i ‘s/mirrorlist/#mirrorlist/g’ /etc/yum.repos.d/CentOS-*
[root@autocontroller ~]# sed -i ‘s|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g’ /etc/yum.repos.d/CentOS-*

Step 3: Now run the yum update
[root@autocontroller ~]# yum update -y

文字都看不太懂的,先用再说。
后续判定命令:
yum --version
whereis yum:yum:/usr/bin/yum /etc/yum /etc/yum.conf /usr/share/man/man8/yum.8.gz

2.docker-ce容器安装:

yum install docker-ce docker-ce-cli containerd.io,可能需要多执行几次

后续判定命令:
docker --version
在这里插入图片描述
whereis docker:docker:/usr/bin/docker /etc/docker /usr/libexec/docker /usr/share/man/man1/dock

不太确定这里是否还会出现这种问题:在这里插入图片描述
试着执行命令:安装国内镜像源以及安装yum依赖
sudo yum install -y yum-utils
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

没有的话,后续就忽略,因为安装过多次,每次状况不一样,也比较费时间,一些记录不够详细。

3.设置开机启动:

开始对Docker不熟悉的情况,有时明明安装了,发现无法执行成功,可能只是没有启动。
systemctl start docker
systemctl enable docker

4.docker-compose安装:

pip3 install docker-compose
docker-compose --version(注意除了默认安装版本1.29外,有其它版本)
本次为解决后面无法登录的问题重新安装了v2.20.0版本,不知道是不是同时发生影响。
v2.20.0安装命令
sudo curl -L “https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-(uname−s)−(uname -s)-(unames)(uname -m)” -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
我是直接覆盖安装,没有对旧版本卸载。
在这里插入图片描述
在这里插入图片描述
whereis docker-compose

5.CrawLab安装:

CrawLab镜像拉取时,各种网上查到的源都不可用,比如如下几种单独配置都不可行:
{
“registry-mirrors”: [“https://registry.docker-cn.com”]
}

{
“registry-mirrors”: [“https://6kx4zyno.mirror.aliyuncs.com”]
}

{
“registry-mirrors”:[“https://docker.mirrors.ustc.edu.cn”]
}

{
“registry-mirrors” : [
“https://mirror.ccs.tencentyun.com”,
“http://registry.docker-cn.com”,
“http://docker.mirrors.ustc.edu.cn”,
“http://hub-mirror.c.163.com”
],
“insecure-registries” : [
“registry.docker-cn.com”,
“docker.mirrors.ustc.edu.cn”
],
“debug” : true,
“experimental” : true
}

最终采用如下配置,能够拉取到镜像。
{
“registry-mirrors”:
[“https://docker.registry.cyou”,
“https://docker-cf.registry.cyou”,
“https://dockercf.jsdelivr.fyi”,
“https://docker.jsdelivr.fyi”,
“https://dockertest.jsdelivr.fyi”,
“https://mirror.aliyuncs.com”,
“https://dockerproxy.com”,
“https://mirror.baidubce.com”,
“https://docker.m.daocloud.io”,
“https://docker.nju.edu.cn”,
“https://docker.mirrors.sjtug.sjtu.edu.cn”,
“https://docker.mirrors.ustc.edu.cn”,
“https://mirror.iscas.ac.cn”,
“https://docker.rainbond.cc”
]
}
不过现在镜像这么难搞,真是大大打击了使用Docker容器的便利性。

拉取镜像:docker pull tikazyq/crawlab:latest
Docker配置文件:vim docker-compose.yml (I-进入编辑,Esc-退出编辑,:wq-保存关闭)
【初次使用的配置内容是CrawLab官方发布的】
Docker配置重载:systemctl daemon-reload
Docker重启:systemctl restart docker
再次拉取镜像:docker pull tikazyq/crawlab:latest

主要问题

docker-compose up -d
启动CrawLab,能够看到界面还是很兴奋,不过这个502异常是什么鬼?命令行也有警告提醒。
界面显示异常:如果可以我是不想管这个异常内容的,只想登录进去看看界面。奈何用户名和密码根本无法录入字符?
确实是这些异常引起的吗?怎么消除掉,官方文档和网上资料也没有对这个更多的描述。
跟命令行警告有关系吗?只是警告呀,有时是不影响使用的。
跟虚拟机安装形式有关?再重新裸机配置,实在没有机器,又要用多少时间呀。
在这里插入图片描述

命令行警告提醒:
在这里插入图片描述

尝试解决

尽可能尝试解决,首先可以解除掉命令行提示问题,大概2个方向:
1)降低加密套件版本
pip show Cryptography --查看版本
pip uninstall cryptography --卸载本版本
pip install cryptography==3.4.8 --安装低版本在这里插入图片描述
2)升级Python
鬼知道做了多少尝试,3.9、3.10都安装过,软连接也重设了,奈何docker-compose似乎只关联3.6,最后干脆卸载掉3.6,这下好了,CentOS可视化界面没了,整个使用都不好使了,无奈重装。费时费力不讨好。慎记:CentOS默认Python3.6不要随意卸载!!!

采用方式1消除掉了命令行的提示,依然出现一样的问题。

后面就是各种调整:vim docker-compose.yml 的内容,试图理解API的概念,建立配置。

以上过程大概持续了3天时间,最后还是决定放弃了。

有时候会有这种心理:针对一个问题总想集中精力解决,每天会有新想法尝试,每天没有结果觉得想结束了,第二天感觉又精神饱满的开始调试。总觉得这回总算找到问题了,就是它了,一顿忙活又不是。总想算了不去管了,那么问题还是问题,永远横亘在这里是一道沟子。心里又总是不能安心做其它的内容,对于其它的内容没什么困难,就是花一些时间,做起来也没有激情。

真正的问题解决不掉,其它的任务没有干劲。

脑子有无数个为什么?为什么?为什么?这时候总想自己变成那0那1,去一探究竟。

最终解决

在要放弃的最后晚上,又调整了一下配置,直到下班都没跑完,就让它跑了一夜。
第二天甚至忘了这件事,4、5天的时间虽然没出结果,感觉也可以给自己一个交代了。“”众里寻他千百度“可能也需要稍微放一放,说不定何时就 ”蓦然回首那人却在灯火阑珊处"。

想着下次调试可能要换系统了,比如ubuntu都下载好了:ubuntu-24.10-desktop-amd64.iso。
没有充足的经验,笨笨的尝试总还是可以的,只要能登录进去,进一步了解使用方法等,就可以评估可行性了。
百闻不如一试,不管看了多少资料,总还想手头过一下。或许也突然有灵感爆发,本不想再开机的,还是想着先打开吧(是办公电脑远程另一台淘汰的电脑配置的,淘汰电脑安装虚拟机VM+CentOS)。

这才想起来昨晚没有关机,想起来昨日的未尽事宜、看了看已经跑完了,那就登录下试试吧。真的是柳暗花明又一春,近几天来最大的惊喜,可以打开系统可以登录了,感觉终于可以迈进下一个阶段。
在这里插入图片描述
在这里插入图片描述
这样看来还是配置文件 docker-compose.yml 的影响,具体是哪个参数影响,又要需要做变量控制逐一调试了,同时也不能排除之前的改动没有作用,深处的探索又要花费很多精力。

可行配置如下:
master:
image: crawlabteam/crawlab:latest
container_name: crawlab_example_master
environment:
CRAWLAB_NODE_MASTER: “Y”
CRAWLAB_MONGO_HOST: “mongo”
volumes:
- “./.crawlab/master:/root/.crawlab”
ports:
- “8080:8080”
depends_on:
- mongo

worker01:
image: crawlabteam/crawlab:latest
container_name: crawlab_example_worker01
environment:
CRAWLAB_NODE_MASTER: “N”
CRAWLAB_GRPC_ADDRESS: “master”
CRAWLAB_FS_FILER_URL: “http://master:8080/api/filer”
volumes:
- “./.crawlab/worker01:/root/.crawlab”
depends_on:
- master

worker02:
image: crawlabteam/crawlab:latest
container_name: crawlab_example_worker02
environment:
CRAWLAB_NODE_MASTER: “N”
CRAWLAB_GRPC_ADDRESS: “master”
CRAWLAB_FS_FILER_URL: “http://master:8080/api/filer”
volumes:
- “./.crawlab/worker02:/root/.crawlab”
depends_on:
- master

mongo:
image: mongo:latest
container_name: crawlab_example_mongo
restart: always

经验教训

1.如果是配置影响,比如镜像源,好像也不会是什么大问题。原理不熟、资料不多、初次接触,肯定会走不少弯路,都是自我摸索、没有老师的小白的必经之路。难过的是官方资料找不到一些解决方案,网络大洋里老针,总是跌跌撞撞前行。
2.尽全力调试问题:问题是进步的好朋友,一直抱着这个观点。没有一个目标问题解决,似乎也没有动力前行。有点临时抱佛脚的心理状态,偏偏是越紧急重要的时刻,越能激发最大的效率和灵感。
3.问题到此可以安心告一段落,关于CrawLab的具体使用还有更多要实践。毕竟对于我们而言,能够使用有时比彻底搞清楚原理更重要,可能这就体现了搞研究和搞应用的区别。恐怕也难以那造诣。

最后,作为最近花最多时间迈过去的问题,在爬虫的道路上也算跨了一大步。感觉很多方向都要探索,很多方向都有问题,到底要成为哪方面的专家哈哈也就是一个指哪打哪的小喽啰,希望更多的能不囿于事,不困于心、从容自在。

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐