使用 selenium 浏览器配置选项分享

浏览器配置选项

配置 chrome 浏览器的选项

在使用 selenium 浏览器渲染技术,爬取网站信息时,默认情况下就是一个普通的纯净的
chrome 浏览器,而我们平时在使用浏览器时,经常就添加一些插件,扩展,代理之类的应
用。相对应的,当我们用 chrome 浏览器爬取网站时,可能需要对这个 chrome 做一些特
殊的配置,以满足爬虫的行为。

常用的行为有:

  1. 禁止图片和视频的加载:提升网页加载速度。
  2. 添加代理:用于翻墙访问某些页面,戒者应对 IP 访问频率限制的反爬技术。
  3. 使用移动头:访问移动端的站点,一般这种站点的反爬技术比较薄弱。
  4. 添加扩展:像正常使用浏览器一样的功能。
  5. 设置编码:应对中文站,防止乱码。
  6. 阻止 JavaScript 执行。

## chromeOptions 对象创建
chromeOptions 是一个配置 chrome 启动时属性的类。
options = webdriver.ChromeOptions()

禁止图片加载

prefs = {“profile.managed_default_content_settings.images”: 2}
options.add_experimental_option(“prefs”, prefs)

无界面浏览器

不提供可视化页面.
options.add_argument(’–headless’)
或者
opt.set_headless() # 把 chrome 设置成无头模式,不论 windows 还是 linux 都可以,自动适
配对应参数

添加代理 ip

chromeOptions.add_argument(“–proxy-server=http://202.20.16.82:10152”)

添加 UA

options.add_argument(‘user-agent=“MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn;
MB200 Build/GRJ22; CyanogenMod-7)AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0
Mobile Safari/533.1”’)

创建定制选项的浏览器对象

driver = webdriver.Chrome(chrome_options= options)

范例

无界面浏览器

opt = webdriver.ChromeOptions() # 创建 chrome 参数对象
opt.set_headless() # 把 chrome 设置成无头模式,不论 windows 还是 linux 都可以,自动适配对
应参数
driver = webdriver.Chrome(options=opt) # 不制定 options 选项则是普通有头浏览器
代理 ip 的使用
ip = '123.157.67.30:34942'
chome_options = webdriver.ChromeOptions()
chome_options.add_argument(('--proxy-server=http://' + ip))
url = 'http://www.gsxt.gov.cn/index.html'
driver = webdriver.Chrome(chrome_options=chome_options)
driver.get(url)
time.sleep(2)
print(driver.page_source)
driver.close()