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()

Guess you like

Origin blog.csdn.net/weixin_45694843/article/details/127157984