selenium的options启动项常用参数设置_永远少年.的博客-爱代码爱编程
1. 背景
- 在使用selenium浏览器渲染技术,爬取网站信息时,默认情况下就是一个普通的纯净的chrome浏览器,而我们平时在使用浏览器时,经常就添加一些插件,扩展,代理之类的应用。相对应的,当我们用chrome浏览器爬取网站时,可能需要对这个chrome做一些特殊的配置,以满足爬虫的行为。
- 常用的行为有:
- 禁止图片和视频的加载:提升网页加载速度。
- 添加代理:用于访问某些页面,或者应对IP访问频率限制的反爬技术。
- 使用移动头:访问移动端的站点,一般这种站点的反爬技术比较薄弱。
- 添加扩展:像正常使用浏览器一样的功能。
- 设置编码:应对中文站,防止乱码。
- 阻止JavaScript执行。
2. chromeOptions
-
chromeOptions 是一个配置 chrome 启动是属性的类。通过这个类,我们可以为chrome配置如下参数(这个部分可以通过selenium源码看到):
-
设置 chrome 二进制文件位置 (binary_location)
-
添加启动参数 (add_argument)
-
添加扩展应用 (add_extension, add_encoded_extension)
-
添加实验性质的设置参数 (add_experimental_option)
-
设置调试器地址 (debugger_address)
一、常用参数
options.add_argument('--headless') # 开启无界面模式
options.add_argument("--disable-gpu") # 禁用gpu
options.add_argument('--user-agent=Mozilla/5.0 HAHA') # 配置对象添加替换User-Agent的命令
options.add_argument('--window-size=1366,768') # 设置浏览器分辨率(窗口大小)
options.add_argument('--start-maximized') # 最大化运行(全屏窗口),不设置,取元素会报错
options.add_argument('--disable-infobars') # 禁用浏览器正在被自动化程序控制的提示
options.add_argument('--incognito') # 隐身模式(无痕模式)
options.add_argument('--disable-javascript') # 禁用javascript
options.add_argument(f"--proxy-server=http://115.239.102.149:4214") # 使用代理
options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片, 提升速度
二、使用方法
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = webdriver.ChromeOptions()
options.add_argument('--headless') # 开启无界面模式
options.add_argument("--disable-gpu") # 禁用gpu
options.add_argument('--user-agent=Mozilla/5.0 HAHA') # 配置对象添加替换User-Agent的命令
options.add_argument('--window-size=1366,768') # 设置浏览器分辨率(窗口大小)
options.add_argument('--start-maximized') # 最大化运行(全屏窗口),不设置,取元素会报错
options.add_argument('--disable-infobars') # 禁用浏览器正在被自动化程序控制的提示
options.add_argument('--incognito') # 隐身模式(无痕模式)
options.add_argument('--disable-javascript') # 禁用javascript
options.add_argument(f"--proxy-server=http://115.239.102.149:4214") # 使用代理
options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片, 提升速度
chrome_obj = webdriver.Chrome(options=options)
chrome_obj.get('https://www.baidu.com/') # 执行 > 效果 > 发送请求,访问相关的页面
str_data = chrome_obj.page_source # 执行 > 效果 > 获取当前页面的源代码
# 截取更多(窗口最大化)
# chrome_obj.maximize_window()
# 网页截屏 无界面模式下 无用
# chrome_obj.save_screenshot('baidu.png')
# 关闭浏览器
time.sleep(2)
chrome_obj.quit()