侧边栏壁纸
博主头像
学海无涯博主等级

有疑问可发邮件[email protected]

  • 累计撰写 326 篇文章
  • 累计创建 85 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

构建一个可以打开浏览器的docker镜像

利刃
2024-08-12 / 0 评论 / 0 点赞 / 12 阅读 / 3598 字
温馨提示:
本文最后更新于 2024-08-13,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

介绍

在使用scrapy playwright和selenium等图形化进行爬虫实现时,一个可用的docker镜像显的必不可少。本次记录一下如何在docker中实现一个基础镜像。

软件选择

名称 版本 说明
ubuntu 20.04 docker镜像
python 3.12
xvfb 实现虚拟桌面
x11vnc 实现远程窗口的连接
novnc 实现通过浏览器显示窗口
websockify 实现端口转发

过程

一、镜像

本次选择ubuntu 20.04版本进行构建。在高版本如22.04 24.04版本中遇到一些问题,没有去处理。

docker pull ubuntu:20.04
docker run --name browser -p 6080:80 -itd ubuntu:20.04 bash

二、基础设置

  1. 进入容器
docker exec -ti browser bash
  1. 环境变量设置 DEBCONF_NONINTERACTIVE_SEEN可以解决一些安装交互问题
export TZ=Asia/Shanghai
export LANG=C.UTF-8
export LC_ALL=C.UTF-8
export DEBCONF_NONINTERACTIVE_SEEN=true
ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
  1. 更新系统,安装一些必要的包
apt-get update && apt-get upgrade -y
  1. 安装x11vnc novnc xvfb websockify。
apt-get install -y x11vnc novnc xvfb websockify
  1. 使用ppa安装python3.12
apt-get install -y software-properties-common
add-apt-repository ppa:deadsnakes/ppa -y
  1. 安装python3.12
apt-get install -y python3.12 python3.12-full python3-pip
  1. 安装pip3.12
apt-get install -y curl
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3.12 get-pip.py
  1. 创建venv环境
python3.12 -m venv venv

三、虚拟桌面配置

使用xvfb实现虚拟桌面

  1. 设置虚拟窗口变量
export DISPLAY=:3
  1. 启动虚拟窗口
Xvfb -ac :3 -screen 0 1960x1080x24 &

四、x11vnc配置

  1. 设置访问密码
echo "123" > /etc/x11vnc.pass
  1. 使用x11vnc实现远程访问
x11vnc -ncache 10  -display :3  -listen 0.0.0.0 -rfbport 5900 -xkb -forever -loop -noxdamage -repeat -passwdfile /etc/x11vnc.pass -shared &

五、websockify配置

使用websockify实现流量转发

websockify --web /usr/share/novnc 80 localhost:5900 &

测试

访问链接如下:http://IP:6080/vnc.html image.png 输入密码完成连接,连接后显示一个黑色的窗口。 image.png

安装playwright

./venv/bin/pip3.12 install playwright -i https://pypi.tuna.tsinghua.edu.cn/simple

使用playwright安装浏览器

 ./venv/bin/playwright install chrome

打开一个浏览器

image.png

image.png

image.png

image.png

问题

一、解决浏览器中文乱码问题

apt-get install fonts-wqy-zenhei

image.png

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区