3个版本
新版本 0.1.2 | 2024年8月23日 |
---|---|
0.1.1 | 2024年8月23日 |
0.1.0 | 2024年7月13日 |
#53 in WebSocket
19KB
370 行
chrome
Chrome实例和面板,用于轻松管理启动和关闭。
安装
cargo安装 chrome_server
用法
- 可以启动和关闭多个Chrome实例。
- 获取chrome ws连接和状态。
当前实例在通过API启动时将Chrome绑定到0.0.0.0。
使用环境变量 REMOTE_ADDRESS
在物理或网络之间更改Chrome实例的地址。
使用端口 6000
获取Chrome容器的状态时,应用程序将通过alp健康检查。
需要加载应用程序才能在负载均衡器上运行Chrome,这是控制面板的主要目的之一。
Chrome的默认端口是 9222
。
Docker
您可以使用以下Docker镜像: a11ywatch/chrome
和 a11ywatch/chrome-xvfb
。
无Docker构建
为了无Docker构建,请设置环境变量 BUILD_CHROME
为 true。
Mac
如果您在本地运行,请使用以下命令启动args,第一个参数为 chrome_server '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome'
API
- POST:
fork
启动新的Chrome实例或使用fork/$port
通过端口启动实例。 - POST:
shutdown/$PID
关闭实例。例如:curl --location --request POST 'https://127.0.0.1:6000/shutdown/77057'
- POST:
/json/version
获取要连接到Web Sockets的Chrome实例的JSON信息。
Curl 示例
fork
curl --location --request POST 'https://127.0.0.1:6000/fork'
shutdown
curl --location --request POST 'https://127.0.0.1:6000/shutdown'
/json/version
curl --location --request GET 'https://127.0.0.1:6000/json/version' \
--header 'Content-Type: application/json'
{
"Browser": "HeadlessChrome/114.0.5735.133",
"Protocol-Version": "1.3",
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/114.0.5735.133 Safari/537.36",
"V8-Version": "11.4.183.23",
"WebKit-Version": "537.36 (@fbfa2ce68d01b2201d8c667c2e73f648a61c4f4a)",
"webSocketDebuggerUrl": "ws://127.0.0.1:9222/devtools/browser/74f18759-f4b3-4b1f-a68c-942570542f0e"
}
参数
- 第一个参数是Chrome应用程序的位置,例如在Linux上:
'/opt/google/chrome/chrome'
. - 第二个参数是Chrome地址:
127.0.0.1
. - 您可以将
init
作为第三个参数传入,以在9222
上自动启动Chrome。
启动Chrome的示例(所有参数都是可选的)
chrome_server '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' 127.0.0.1 init
# Chrome PID: 87659
# Chrome server at localhost:6000
# DevTools listening on ws://127.0.0.1:9222/devtools/browser/c789f9e0-7f65-495d-baee-243eb454ea15
环境变量
# the chrome path on the OS
CHROME_PATH=
# the remote address of the chrome intance
REMOTE_ADDRESS=
Docker
您可以使用以下方法构建此镜像
- Dockerfile(默认)
- Dockerfile.playwright(自定义Playwright Chrome)
- Dockerfile.xvfb(虚拟显示)
依赖项
~9–18MB
~244K SLoC