【Python自学笔记】selenium关于Chromedrive的高级设置,options设置,如何下载文件(无头模式/禁止图片/设置代理/防检测等)

文章目录

    • selenium常用的一些options设置
    • selenium常用的浏览器窗口设置命令
    • 定义实例化函数
    • selenium下载文件(Chrome)
    • 其他参考内容


selenium常用的一些options设置

  • 更多免费分享请点击这里
  • 下面是一些针对options的常用设置命令及其对应的效果
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 设置无头模式
chrome_options = Options()
# 无头模式启动
chrome_options.add_argument('--headless')
# 谷歌文档提到需要加上这个属性来规避bug
chrome_options.add_argument('--disable-gpu')
# 禁止加载图片,提升访问速度
chrome_options.add_argument('blink-settings=imagesEnabled=false')
# 无头模式下防止服务器检测
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 初始化实例
wd = webdriver.Chrome(self.chromedriver_address, options=self.chrome_options)
# 访问百度
wd.get("http://www.baidu.com")
# 设置浏览器大小:全屏
wd.maximize_window()   
# 获取网页内容
html = wd.page_source
# 截取浏览器的屏幕,注意:保存的图片必须为png格式
wd.save_screenshot('./screenshot.png')

selenium常用的浏览器窗口设置命令

  • 以下是一些针对浏览器窗口设置的命令及其效果
	get_window_size()     #获取浏览器大小

  set_window_size()     #设置浏览器位置

  get_window_position()    #获取浏览器在屏幕上的坐标

  set_window_position()    #设置浏览器在屏幕的位置 

  maximize_window()        #最大化浏览器

	set_window_rect()			#设置浏览器的位置和大小
	
	wd.maximize_window()  		# 设置浏览器大小:全屏

定义实例化函数

  • 在使用的时候可以考虑自定义一个实例化函数,截取了一个项目的部分代码,如下
		#这里省略了前面部分代码
		self.chrome_driver_address = chrome_driver_address    #chromedriver存放的地址
    def chrome_driver(self):  # 实例化chromedrive
        option = ChromeOptions()
        # 无头模式
        option.add_argument('--headless')
        option.add_argument('--disable-gpu')  # 规避无头模式出现的bug
        # 禁止加载图片
        option.add_argument('blink-settings=imagesEnabled=false')
        # 无头模式下防止服务器检测
        option.add_experimental_option('excludeSwitches', ['enable-automation'])
        # 初始化实例
        if self.url_file_address == None:
            chrome_driver = webdriver.Chrome(options=option)
        else:
            chrome_driver = webdriver.Chrome(self.chrome_driver_address)
        return chrome_driver

selenium下载文件(Chrome)

  • 设置Chrome的options:

  • download.default_directory:设置下载路径

  • profile.default_content_settings.popups:设置为 0 禁止弹出窗口

  • 示例:

# -*- coding: utf-8 -*-
import time
from selenium import webdriver


options = webdriver.ChromeOptions()
prefs = {
    "download.prompt_for_download": False,
    'download.default_directory': 'C:/Users/Administrator/Desktop/1/',#下载目录
    "plugins.always_open_pdf_externally": True,
    'profile.default_content_settings.popups': 0,#设置为0,禁止弹出窗口
    # 'profile.default_content_setting_values.images': 2,#禁止图片加载
}
options.add_experimental_option('prefs', prefs)

executable_path = "../source/chromedriver_win2.43/chromedriver.exe"
driver = webdriver.Chrome(executable_path=executable_path, chrome_options=options)
driver.get('http://sahitest.com/demo/saveAs.htm')
driver.find_element_by_xpath('//a[text()="testsaveas.zip"]').click()
time.sleep(3)
driver.quit()

其他参考内容

  • 更多免费分享请点击这里
    Ubuntu18.4如何正确的安装Chrome&chromedriver&selenium点击查看参考文章

无头模式/禁止图片/设置代理参考文章


添加扩展应用/插件,模拟移动设备等设置参考文章


selenium无头模式下防止服务器检测


selenium下载文件

你可能感兴趣的:(python自学笔记)