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

有疑问可发邮件zp@wlzs.cn。

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

目 录CONTENT

文章目录

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

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

介绍

在使用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 输入密码完成连接,连接后显示一个黑色的窗口。

安装playwright

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

使用playwright安装浏览器

 ./venv/bin/playwright install chrome

打开一个浏览器

问题

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

apt-get install fonts-wqy-zenhei

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区