热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pythonchromeheadless_在docker容器中部署pythonselenium+chromeheadless自动化脚本(续)

本文将会讲到下列内容:1、制作镜像2、编排容器显然,上次做的不好,如果移植的话,python3还是需要重新安装,

本文将会讲到下列内容:

1、制作镜像

2、编排容器

显然,上次做的不好,如果移植的话,python3还是需要重新安装,这显然不符合我们的初衷。那么,把依赖的python3也做成镜像吧。

一、制作python3镜像

1、拉去最新python镜像:docker pull python

20200314215951453862.png

(我这因为已经拉取过了哈)

2、编写Dockerfile制作镜像:

新建文件Dockerfile,写入下列信息:(注意:文件名只能是这个)

FROM python:alpine3.6

RUN pip install selenium

保存,执行命令:docker build . -t selenium_python:v1

(构建名为selenium_python的镜像,版本号为:v1;构建需要指定Dockerfile路径,这里指向当前目录)

构建完,docker images查看镜像列表:

20200314215951722427.png

二、使用docker-compose编排容器

1、安装这货

yum install docker-compose

20200314215951807391.png

2、新建配置文件docker-compose.yml,同样的,后面执行命令时也需要指定该文件路径

version: "2.0"

services:

python:

image: selenium_python:v1

volumes:

- ./baidu.py:/root/baidu.py # 将本地文件映射到容器内,前面的路径是本机的,后面的是容器的。注意:可以指定具体文件,也可以指定路径

command: python /root/baidu.py # 定义启动容器执行的命令

depends_on:

- chrome #映射的域名,脚本中要把域名改成这个

chrome:

image: selenium/standalone-chrome:latest

ports:

- "4444:4444"

shm_size: 2g

20200314215951851338.png

修改脚本,上篇文章中的脚本,稍微改下:

访问selenium-chrome服务改为:command_executor="http://chrome:4444/wd/hub"

driver前加上一点等待时间,防止selenium-chrome还未启动完成,就开始执行脚本。

20200314215951914817.png

改完的baidu.py如下:

# /usr/bin/bash python

# -*- coding:utf-8 -*-

from selenium import webdriver

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

import time

time.sleep(5)

driver = webdriver.Remote(

command_executor="http://chrome:4444/wd/hub",

desired_capabilities=DesiredCapabilities.CHROME

)

driver.get("https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=%E5%A5%B3%E7%A5%9E%E8%8A%82%E5%BF%AB%E4%B9%90&oq=iPad%25E7%2594%25BB%25E6%25B0%25B4%25E5%25BD%25A9&rsv_pq=da863c960031fa89&rsv_t=320bU5S7GOOB43J2GLgjE66RWcLR2giCuNktmA5I6Wm7VcW7dZ1It2hKWxs&rqlang=cn&rsv_enter=1&rsv_dl=tb&inputT=8595&rsv_sug3=16&rsv_sug1=14&rsv_sug7=101&rsv_sug2=0&rsv_sug4=11686")

content = driver.title.split("_")[0]

print(content)

driver.close()

3、启动: docker-compose up -d

# 如果出现下面的提示,关掉上次启动的容器即可

20200314215951991968.png

20200314215952034939.png

如果没出现上面的,那就会出现名场面了:

20200314215952114043.png

虽然绿了,但也不确定是不是真的搞定了撒,查看下日志:

docker logs root_python_1(root_python_1是编排工具自动给python那个容器命名的)

20200314215952181429.png

又看到这个祝福了,真棒!上次萦绕这些的时候,仿佛就在一个礼拜前。

收工,饿了!



推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • Window10+anaconda+python3.5.4+ tensorflow1.5+ keras(GPU版本)安装教程 ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了在Mac上配置环境变量,实现Python3的命令行调用的步骤。首先通过官网下载或使用brew安装Python3,并找到安装路径。然后将该路径添加到环境变量中,可以通过编辑.bash_profile文件或执行source命令来实现。配置完成后,即可在命令行中直接调用Python3。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • Python的参数解析argparse模块的学习
    本文介绍了Python中参数解析的重要模块argparse的学习内容。包括位置参数和可选参数的定义和使用方式,以及add_argument()函数的详细参数关键字解释。同时还介绍了命令行参数的操作和可接受数量的设置,其中包括整数类型的参数。通过学习本文内容,可以更好地理解和使用argparse模块进行参数解析。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
author-avatar
mobiledu2502863117
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有