EasySpider Docker运行示例

在日常开发或测试中,自动化浏览器的操作已经变得越来越重要。而通过Docker来运行Selenium Chrome镜像,可以轻松实现自动化浏览器测试,同时支持多任务并行处理。今天我们来看看如何使用Docker来启动Selenium Chrome镜像并运行任务。

前提条件

首先,你需要确保已经安装了Docker。如果还没有安装,可以根据Docker官方指南进行安装。安装完成后,我们就可以进入Selenium Chrome镜像的操作了。

启动Selenium Chrome镜像

运行以下命令来启动一个Selenium Chrome镜像,并且将容器端口映射到主机的4444端口:

    
bash
sudo docker run -d -p 4444:4444 --name selenium-chrome --shm-size="4g" selenium/standalone-chrome

此命令会启动一个独立的Chrome实例,我们可以通过Docker容器中的Chrome浏览器来执行自动化任务。

运行任务的两种方式

A. 直接运行打包好的程序
如果你不打算自己编译程序,可以直接运行打包好的程序。下载包含Docker支持的程序版本,执行以下命令:

    
bash
./EasySpider/resources/app/chrome_linux64/easyspider_executestage --ids [0] --docker_driver http://localhost:4444/wd/hub --user_data 0 --server_address http://localhost:8074 --config_folder "./" --headless 1 --read_type local --config_file_name config.json --saved_file_name

B. 自行修改源代码并运行
如果你需要自行修改源代码,可以进入项目的ExecuteStage文件夹并安装Python环境(版本为3.10或3.11)。使用以下命令安装依赖:

    
bash
pip3 install -r requirements.txt

然后执行任务:

    
bash
python3 easyspider_executestage.py --ids [0] --docker_driver http://localhost:4444/wd/hub --user_data 0 --server_address http://localhost:8074 --config_folder "./" --headless 1 --read_type local --config_file_name config.json --saved_file_name

解决常见问题

如果在运行过程中出现Cannot find file ../ElectronJS/chrome_win64/stealth.min.js的错误,只需手动创建文件夹并将相应文件复制到指定目录下即可。

其他类似文件找不到的问题也可以通过同样的方式解决,确保文件路径正确无误。

查看浏览器占用情况

任务执行时,一个浏览器实例只能同时处理一个任务。为了查看当前浏览器的占用情况,你可以访问http://localhost:4444来查看。如果出现浏览器被占用无法执行任务的情况,重启Docker镜像即可:

    
bash
sudo docker restart selenium-chrome

rpa_tutorial_easyspider_case_Running_example_1

同时运行多个任务

如果你需要同时运行多个浏览器实例以便处理多个任务,可以使用Selenium Hub和Node。Selenium Hub作为中央节点,管理多个Selenium Node。下面是具体步骤:

1. 启动Selenium Hub

    
bash
sudo docker network create grid
sudo docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub

2. 启动Selenium Nodes

接下来,通过以下命令连接多个Chrome节点到Selenium Hub。可以根据需要启动多个节点,例如启动三个浏览器实例:

    
bash
sudo docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub --shm-size="4g" -e SE_EVENT_BUS_PUBLISH_PORT=4442 -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium/node-chrome
sudo docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub --shm-size="4g" -e SE_EVENT_BUS_PUBLISH_PORT=4442 -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium/node-chrome
sudo docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub --shm-size="4g" -e SE_EVENT_BUS_PUBLISH_PORT=4442 -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 selenium/node-chrome

3. 任务执行

其余命令执行方式与之前相同,仍然在--docker_driver后指定远程Docker地址,默认是http://localhost:4444/wd/hub

你可以访问http://localhost:4444查看各个浏览器实例的占用情况。

rpa_tutorial_easyspider_case_Running_example_2

这个Docker运行Selenium的方案真心推荐给那些需要同时运行多个任务的小伙伴们,特别是那些需要自动化浏览器操作的开发者和测试人员。有了Selenium Hub和多个Node的支持,你可以轻松实现多任务并行执行,极大提高效率。

阅读全文
付费
AI爆文训练营
图文变现友好赛道,低门槛、高上限,教你从0到1做个赚钱的公众号!
立即查看
躺着赚钱
¥149/年
何老师陪你做副业
这里聚焦AI副业、个人IP、自媒体运营、写作、赚钱案例。不哔哔,只分享有价值的副业项目。
立即查看
AI赚钱案例
限免
DeepSeek进阶教程
带你全面掌握DeepSeek应用技巧。提升工作、学习效率
立即查看
100万人学过
付费
网盘拉新实战教程
每周花费一小时,手把手教你赚网盘平台佣金
立即查看
500人学过
限时优惠
AiPPT
结合最新AI技术,为用户提供一键生成高质量PPT的解决方案。
立即查看
一键生成 PPT
免费
豆包MarsCode
一款免费的AI编程助手,全新支持DeepSeek R1/V3、豆包大模型1.5自由切换,免部署、更准确、更强大!
立即查看
AI编程助手
免费
Monica AI
Monica AI满血复活DeepSeek【免费】,提升您的聊天、搜索、写作和编程体验。
立即查看
一站式 AI 助手
云服务
腾讯云
综合性的云计算服务平台,现已接入DeepSeek,提供多样化的云解决方案
立即查看
高效可靠
云服务
阿里云
全球领先的云计算与数据服务平台,提供云服务器、存储、数据库、安全等多种服务
立即查看
多样化
DeepSeek企业微信码
免费领取DeepSeek资料