@
Belmode 之前都是有头模式在跑,无图形界面的 Linux 下用 xvfb + pyvirtualdisplay 模拟图形界面也能跑,看到这里问无头模式能不能跑,试了一下,能跑,不过有几点注意事项:
1. ua 和实际打开浏览器的 ua 必须一致
2. macOS 下,有头无头都能跑
3. 无图形界面的 Linux - 有头:因为我跑的是有个打开页面后倒计时几秒才能点的按钮,在不用 xvfb + pyvirtualdisplay 的情况下,不能跑,就算显式等待一段时间也点不了那个按钮,用了 xvfb + pyvirtualdisplay 就没问题
4. 无图形界面的 Linux - 无头,我要跑的那个页面,就算是无头并不实际打开浏览器,也得用用 xvfb + pyvirtualdisplay 模拟界面,有点奇怪
from DrissionPage import WebPage, ChromiumOptions
co = ChromiumOptions()
co.set_headless(True)
# ua 和实际打开浏览器的 ua 必须一致,才能通过 Cloudflare, 因为浏览器升级,ua 不固定,先打开百度得到目前的 ua
page = WebPage(driver_or_optiOns=co)
page.get("
https://www.baidu.com")
ua = page.user_agent.replace("Headless", "")
page.quit()
co.set_user_agent(ua)
page = WebPage(driver_or_optiOns=co)
page.get(你真正要跑的 URL)