爬虫工具之selenium(四)-Chrome Options参数

这一章学习Chrome Options,主要参考

  • Selenium笔记(2)Chrome启动选项
  • python+selenium+Chrome options参数

Chrome Options是一个配置chrome启动时属性的类,通过这个参数我们可以为Chrome添加如下参数:

  • 设置 chrome 二进制文件位置 (binary_location)
  • 添加启动参数 (add_argument)
  • 添加扩展应用 (add_extension, add_encoded_extension)
  • 添加实验性质的设置参数 (add_experimental_option)
  • 设置调试器地址 (debugger_address

Chrome Options常用的行为一般有以下几种:

  • 禁止图片和视频的加载:提升网页加载速度
  • 添加代理:用于访问某些页面,或者应对IP访问频率限制的反爬技术
  • 使用移动头:访问移动端的站点(一般这种站点的反爬技术比较薄弱)
  • 添加扩展:像正常使用浏览器一样的功能
  • 设置编码:应对中文站,防止乱码
  • 阻止JavaScript执行
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 实例化一个启动参数对象
chrome_options = Options()
# 使用add_argument()方法添加启动参数
chrome_options.add_argument('--window-size=1366,768')
# 在初始化Webdriver对象时将参数对象传入Chrome(实现以特定参数启动),则启动了一个设置了窗口大小的Chrome
browser = webdriver.Chrome(chrome_options=chrome_options)
browser.get('https://www.douban.com')

提示信息:
G:\python\work\cankao>python 0317.py
0317.py:9: DeprecationWarning: use options instead of chrome_options
browser = webdriver.Chrome(chrome_options=chrome_options)

DevTools listening on ws://127.0.0.1:49421/devtools/browser/fe4bb06c-22f6-4c21-b647-f8a8a0816d56

第一个提示的意思是将“browser = webdriver.Chrome(chrome_options=chrome_options)”中的参数“chrome_options”修改为“options”
第二个提示“开发工具正在侦听……”不影响程序运行,参考资料,增加一行代码即可

修改后的代码如下:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 实例化一个启动参数对象
chrome_options = Options()
#增加以防止出现“DevTools listening on ws://127.0.0.1……”的提示
chrome_options.add_experimental_option('excludeSwitches', ['enable-logging'])
# 使用add_argument()方法添加启动参数
chrome_options.add_argument('--window-size=1366,768')
# 在初始化Webdriver对象时将参数对象传入Chrome(实现以特定参数启动),则启动了一个设置了窗口大小的Chrome
browser = webdriver.Chrome(options=chrome_options)
browser.get('https://www.douban.com')

启动参数主要有:
一、设置浏览器以无界面方式运行

#设置浏览器以无界面方式运行
chrome_options.add_argument('--headless')
#或者:
chrome_options.headless=True

二、禁用图片

#禁用图片加载参数设置(在headless模式下也生效)
chrome_options.add_argument('blink-settings=imagesEnabled=false')
#或者:
prefs = {"profile.managed_default_content_settings.images": 2}
chrome_options.add_experimental_option("prefs", prefs)

三、修改User-Agent

#修改User-Agent
chrome_options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.193 Safari/537.36')

四、设置编码格式

# 设置默认编码为 utf-8
chrome_options.add_argument('lang=zh_CN.UTF-8')

五、代理ip设置
同一个IP反复爬取同一个网站很有可能被封,因此建议建立代理ip池循环使用,降低被禁几率

你可能感兴趣的:(爬虫工具,爬虫)