用webdriver 模拟浏览网页时,可以使用无头模式,尤其在linux系统中,因为linux没有图形化界面,使用有头模式一般会报错。
chrome_options.add_argument("--headless") # 设置Chrome无头模式
但是有些网站的反爬措施比较严格,使用无头模式会被识别出来,直接拒绝访问,这时候,就得使用有头模式,但是linux没有图形化界面,这时候就需要搞一个假的图形界面出来,从而欺骗浏览器,让它的有头模式能够正常使用。
为了达到这个目的,我们可以使用一个叫做 Xvfb
的东西。
Xvfb 在一个没有图像设备的机器上实现了 X11显示服务的协议。它实现了其他图形界面都有的各种接口,但并没有真正的图形界面。所以当一个程序在 Xvfb 中调用图形界面相关的操作时,这些操作都会在虚拟内存里面运行,只不过你什么都看不到而已。
使用 Xvfb,我们就可以欺骗 Selenium,让它以为自己运行在一个有图形界面的系统里面,这样一来就能够正常使用有头模式了。
安装 Xvfb:
sudo yum update
sudo yum install xvfb
使用xvfb运行python脚本时,需要在命令面前加上 xvfb-run,比如:
xvfb-run python3 jv.py
标签:webdriver,python,图形界面,使用,xvfb,有头,模式,Xvfb,Linux
From: https://blog.csdn.net/weixin_39407597/article/details/139893056