有时候我们使用 web 自动化程序做爬虫,奈何服务器可能安装不了对应的浏览器进行操作。 browserless 致力于解决这个问题。
Web browser automation built for everyone, and loved by developers.
browserless 支持常见的 web 自动化应用。例如 Puppeteer、Selenium 和 Playwright。
我们安装好 docker 后,运行此命令,就能启动 Chrome 无头浏览器了。
docker run -d -p 3000:3000 -e "MAX_CONCURRENT_SESSIONS=10" browserless/chrome
如果是第一次使用,会自动安装最新版。
我是用的是 Playwright,在 Playwright 的代码中只要做如下修改即可。
# browser = playwright.chromium.launch(headless=True)
browser = playwright.chromium.connect_over_cdp("ws://localhost:3000")
context = browser.new_context()
page = context.new_page()
page.goto(url)
这样修改代码以后,运行起来和本地使用playwright install
安装的驱动运行无异。对于网站有限制的,运行起来还是差点意思。比如我主要用playwright跑问卷星的代码,看截图好像是无法点击提交按钮。很奇怪。