使用Selenium FirefoxDriver在Google搜索上禁用样式

naz*_*aif 7 python firefox selenium google-search selenium-webdriver

下面的代码禁用加载火狐硒webdriver的页面上的样式表和图像:

from selenium import webdriver

firefox_profile = webdriver.FirefoxProfile()
firefox_profile.set_preference('permissions.default.stylesheet', 2)
firefox_profile.set_preference('permissions.default.image', 2)

driver = webdriver.Firefox(firefox_profile)
driver.get('http://www.stackoverflow.com/')

driver.close()
Run Code Online (Sandbox Code Playgroud)

它适用于stackoverflow.com,facebook.com,yahoo.com ......但有趣的是不适用于谷歌搜索; 只有Google徽标消失且其样式表仍然存在.

如果您尝试使用以下链接http://google.com/search?q=nelson+mandela,您将获得:

在此输入图像描述

而预期的结果应该是这样的(没有样式表+没有图片):

在此输入图像描述

  • 到底是怎么回事?
  • 我如何解决它?

sax*_*sax 3

google 徽标来自 css,其中图片作为数据嵌入在 HTML 中(img src="data:image/jpeg;base64, ....) 代码禁用加载远程图像而不是此类源

  • requests.default.stylesheet:禁用任何格式

  • Permissions.default.image:禁用任何图像和CSS背景图像

如果图像以 base64 编码嵌入到页面中,则不会被这些权限阻止,因为它是 HTML 代码的一部分(请参阅http://en.wikipedia.org/wiki/Data_URI_scheme

要禁用更多格式,您应该添加:

  • firefox_profile.set_preference("permissions.default.script", 2);
  • firefox_profile.set_preference("javascript.enabled", False);