def __init__(self, noimg=True, nohead=True): try: self.options = Options() if os.path.exists("./chrome/chrome.exe"): # win self.options.binary_location = "./chrome/chrome.exe" elif os.path.exists("/opt/google/chrome/chrome"): # linux self.options.binary_location = "/opt/google/chrome/chrome" if noimg: self.options.add_argument('blink-settings=imagesEnabled=true' ) # 不加载图片, 提升速度,但无法显示二维码 # 命令行版本 nohead = True if nohead: self.options.add_argument('--headless') self.options.add_argument('--disable-extensions') self.options.add_argument('--disable-gpu') self.options.add_argument('--no-sandbox') self.options.add_argument('--mute-audio') # 关闭声音 # self.options.add_argument('--window-size=400,500') self.options.add_argument('--window-size=500,450') # self.options.add_argument('--window-size=900,800') self.options.add_argument('--window-position=700,0') self.options.add_argument('--log-level=3') self.options.add_argument('--user-agent={}'.format( user_agent.getheaders())) self.options.add_experimental_option( 'excludeSwitches', ['enable-automation']) # 绕过js检测 # 在chrome79版本之后,上面的实验选项已经不能屏蔽webdriver特征了 # 屏蔽webdriver特征 self.options.add_argument("--disable-blink-features") self.options.add_argument( "--disable-blink-features=AutomationControlled") self.webdriver = webdriver if os.path.exists("./chrome/chromedriver.exe"): # win self.driver = self.webdriver.Chrome( executable_path="./chrome/chromedriver.exe", chrome_options=self.options) elif os.path.exists("./chromedriver"): # linux self.driver = self.webdriver.Chrome( executable_path="./chromedriver", chrome_options=self.options) # linux 包安装chromedriver elif os.path.exists("/usr/lib64/chromium-browser/chromedriver"): self.driver = self.webdriver.Chrome( executable_path="/usr/lib64/chromium-browser/chromedriver", chrome_options=self.options) elif os.path.exists( "/usr/local/bin/chromedriver"): # linux 包安装chromedriver self.driver = self.webdriver.Chrome( executable_path="/usr/local/bin/chromedriver", chrome_options=self.options) else: self.driver = self.webdriver.Chrome( chrome_options=self.options) except: print("=" * 60) print("Mydriver初始化失败") print("=" * 60) raise
def __init__(self, noimg=True, nohead=True): try: self.options = Options() if os.path.exists("./chrome/chrome.exe"): # win self.options.binary_location = "./chrome/chrome.exe" elif os.path.exists("/opt/google/chrome/chrome"): # linux self.options.binary_location = "/opt/google/chrome/chrome" if noimg: self.options.add_argument('blink-settings=imagesEnabled=true') # 不加载图片, 提升速度,但无法显示二维码 if nohead: self.options.add_argument('--headless') self.options.add_argument('--disable-extensions') self.options.add_argument('--disable-gpu') self.options.add_argument('--no-sandbox') self.options.add_argument('--mute-audio') # 关闭声音 # self.options.add_argument('--window-size=400,500') self.options.add_argument('--window-size=750,450') # self.options.add_argument('--window-size=900,800') self.options.add_argument('--window-position=700,0') self.options.add_argument('--log-level=3') self.options.add_argument('--user-agent={}'.format(user_agent.getheaders())) self.options.add_experimental_option('excludeSwitches', ['enable-automation']) # 绕过js检测 # 在chrome79版本之后,上面的实验选项已经不能屏蔽webdriver特征了 # 屏蔽webdriver特征 self.options.add_argument("--disable-blink-features") self.options.add_argument("--disable-blink-features=AutomationControlled") self.webdriver = webdriver if os.path.exists("./chrome/chromedriver.exe"): # win self.driver = self.webdriver.Chrome(executable_path="./chrome/chromedriver.exe", chrome_options=self.options) elif os.path.exists("./chromedriver"): # linux self.driver = self.webdriver.Chrome(executable_path="./chromedriver", chrome_options=self.options) elif os.path.exists("/usr/bin/chromedriver"): # linux用户安装 self.driver = self.webdriver.Chrome(executable_path="/usr/bin/chromedriver", chrome_options=self.options) elif os.path.exists("/usr/lib64/chromium-browser/chromedriver"): # linux 包安装chromedriver self.driver = self.webdriver.Chrome(executable_path="/usr/lib64/chromium-browser/chromedriver", chrome_options=self.options) elif os.path.exists("/usr/local/bin/chromedriver"): # linux 包安装chromedriver self.driver = self.webdriver.Chrome(executable_path="/usr/local/bin/chromedriver", chrome_options=self.options) else: self.driver = self.webdriver.Chrome(executable_path="./chrome/chromedriver.exe",chrome_options=self.options) except: print("=" * 60) print("Mydriver初始化失败。您可以检查下:") print("1. 是否存在./chrome/chromedriver.exe 或 PATH 中是否存在 chromedriver.exe") print("2. 浏览器地址栏输入 chrome://version 看到的chrome版本 和 运行 chromedriver.exe 显示的版本整数部分是否相同") print("针对上述问题,请在 http://npm.taobao.org/mirrors/chromedriver 下载对应版本程序并放在合适的位置") print("3. 如不是以上问题,请提issue,附上报错信息和您的环境信息") print("=" * 60) input("按回车键继续......") raise
def __init__(self, noimg=True, nohead=True): try: self.options = Options() if os.path.exists("./chrome/chrome.exe"): # win self.options.binary_location = "./chrome/chrome.exe" elif os.path.exists("/opt/google/chrome/chrome"): # linux self.options.binary_location = "/opt/google/chrome/chrome" if noimg: self.options.add_argument( 'blink-settings=imagesEnabled=false') # 不加载图片, 提升速度 if nohead: self.options.add_argument('--headless') self.options.add_argument('--disable-extensions') self.options.add_argument('--disable-gpu') self.options.add_argument('--no-sandbox') self.options.add_argument('--mute-audio') # 关闭声音 self.options.add_argument('--window-size=400,500') self.options.add_argument('--window-position=800,0') self.options.add_argument('--log-level=3') self.options.add_argument('--user-agent={}'.format( user_agent.getheaders())) self.options.add_experimental_option( 'excludeSwitches', ['enable-automation']) # 绕过js检测 self.webdriver = webdriver if os.path.exists("./chrome/chromedriver.exe"): # win self.driver = self.webdriver.Chrome( executable_path="./chrome/chromedriver.exe", chrome_options=self.options) elif os.path.exists("./chromedriver"): # linux self.driver = self.webdriver.Chrome( executable_path="./chromedriver", chrome_options=self.options) elif os.path.exists("/usr/lib64/chromium-browser/chromedriver" ): # linux 包安装chromedriver self.driver = self.webdriver.Chrome( executable_path="/usr/lib64/chromium-browser/chromedriver", chrome_options=self.options) elif os.path.exists( "/usr/local/bin/chromedriver"): # linux 包安装chromedriver self.driver = self.webdriver.Chrome( executable_path="/usr/local/bin/chromedriver", chrome_options=self.options) else: self.driver = self.webdriver.Chrome( chrome_options=self.options) #self.driver.set_window_size(1200, 900) except: print("=" * 120) print("Mydriver初始化失败") print("=" * 120) raise
def __init__(self, noimg=True, nohead=True): try: self.options = Options() if os.path.exists("./chrome/chrome.exe"): # win self.options.binary_location = "./chrome/chrome.exe" elif os.path.exists("/opt/google/chrome/chrome"): # linux self.options.binary_location = "/opt/google/chrome/chrome" if noimg: self.options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片, 提升速度 if nohead: self.options.add_argument('--headless') self.options.add_argument('--disable-extensions') self.options.add_argument('--disable-gpu') self.options.add_argument('--no-sandbox') self.options.add_argument('--mute-audio') # 关闭声音 self.options.add_argument('--window-size=400,500') # 将某个窗口设置为固定大小 self.options.add_argument('--window-position=800,0') # 将某个窗口移动到指定的位置 self.options.add_argument('--log-level=3') # info(default) = 0,warning = 1,LOG_ERROR = 2,LOG_FATAL = 3 # 去掉保存密码提示 self.options.add_experimental_option('prefs', { 'credentials_enable_service': False, 'profile': { 'password_manager_enabled': False } }) self.options.add_argument('--user-agent={}'.format(user_agent.getheaders())) self.options.add_experimental_option('excludeSwitches', ['enable-automation']) # 绕过js检测 self.webdriver = webdriver if os.path.exists("./chrome/chromedriver.exe"): # win self.driver = self.webdriver.Chrome(executable_path="./chrome/chromedriver.exe", chrome_options=self.options) elif os.path.exists("./chromedriver"): # linux self.driver = self.webdriver.Chrome(executable_path="./chromedriver", chrome_options=self.options) elif os.path.exists("/usr/lib64/chromium-browser/chromedriver"): # linux 包安装chromedriver self.driver = self.webdriver.Chrome(executable_path="/usr/lib64/chromium-browser/chromedriver", chrome_options=self.options) elif os.path.exists("/usr/local/bin/chromedriver"): # linux 包安装chromedriver self.driver = self.webdriver.Chrome(executable_path="/usr/local/bin/chromedriver", chrome_options=self.options) else: self.driver = self.webdriver.Chrome(chrome_options=self.options) except: print("=" * 120) print("Mydriver初始化失败") print("=" * 120) raise
def __init__(self, noimg=True, nohead=True): self.options = Options() if os.path.exists("./chrome/chrome.exe"): # win self.options.binary_location = "./chrome/chrome.exe" elif os.path.exists("/opt/google/chrome/chrome"): # linux self.options.binary_location = "/opt/google/chrome/chrome" if noimg: self.options.add_argument( 'blink-settings=imagesEnabled=false') # 不加载图片, 提升速度 if nohead: self.options.add_argument('--headless') self.options.add_argument('--disable-extensions') self.options.add_argument('--disable-gpu') self.options.add_argument('--no-sandbox') self.options.add_argument('--mute-audio') # 关闭声音 self.options.add_argument('--window-size=400,500') self.options.add_argument('--window-position=800,0') self.options.add_argument('--log-level=3') self.options.add_argument('--user-agent={}'.format( user_agent.getheaders())) self.webdriver = webdriver if os.path.exists("./chrome/chromedriver.exe"): # win self.driver = self.webdriver.Chrome( executable_path="./chrome/chromedriver.exe", chrome_options=self.options) elif os.path.exists("./chromedriver"): # linux self.driver = self.webdriver.Chrome( executable_path="./chromedriver", chrome_options=self.options) elif os.path.exists("/usr/lib64/chromium-browser/chromedriver" ): # linux 包安装chromedriver self.driver = self.webdriver.Chrome( executable_path="/usr/lib64/chromium-browser/chromedriver", chrome_options=self.options) elif os.path.exists( "/usr/local/bin/chromedriver"): # linux 包安装chromedriver self.driver = self.webdriver.Chrome( executable_path="/usr/local/bin/chromedriver", chrome_options=self.options) else: self.driver = self.webdriver.Chrome(chrome_options=self.options)
def __init__(self, noimg=True, nohead=True): mydriver_log = '' try: # ==================== 设置options ==================== self.options = Options() if noimg: self.options.add_argument('blink-settings=imagesEnabled=true' ) # 不加载图片, 提升速度,但无法显示二维码 if nohead: self.options.add_argument('--headless') self.options.add_argument('--disable-extensions') self.options.add_argument('--disable-gpu') self.options.add_argument('--no-sandbox') self.options.add_argument( '--disable-software-rasterizer') # 解决GL报错问题 self.options.add_argument('--mute-audio') # 关闭声音 # self.options.add_argument('--window-size=400,500') self.options.add_argument('--window-size=750,450') # self.options.add_argument('--window-size=900,800') self.options.add_argument('--window-position=700,0') self.options.add_argument('--log-level=3') self.options.add_argument('--user-agent={}'.format( user_agent.getheaders())) self.options.add_experimental_option( 'excludeSwitches', ['enable-automation']) # 绕过js检测 # 在chrome79版本之后,上面的实验选项已经不能屏蔽webdriver特征了 # 屏蔽webdriver特征 self.options.add_argument("--disable-blink-features") self.options.add_argument( "--disable-blink-features=AutomationControlled") self.webdriver = webdriver # ==================== 寻找 chrome ==================== if os.path.exists("./chrome/chrome.exe"): # win self.options.binary_location = "./chrome/chrome.exe" mydriver_log = '可找到 "./chrome/chrome.exe"' elif os.path.exists("/opt/google/chrome/chrome"): # linux self.options.binary_location = "/opt/google/chrome/chrome" mydriver_log = '可找到 "/opt/google/chrome/chrome"' # ==================== 寻找 chromedriver ==================== chromedriver_paths = [ "./chrome/chromedriver.exe", # win "./chromedriver", # linux "/usr/bin/chromedriver", # linux用户安装 "/usr/lib64/chromium-browser/chromedriver", # raspberry linux (需要包安装chromedriver) "/usr/lib/chromium-browser/chromedriver", # raspberry linux (需要包安装chromedriver) "/usr/local/bin/chromedriver", # linux 包安装chromedriver ] have_find = False for one_path in chromedriver_paths: if os.path.exists(one_path): self.driver = self.webdriver.Chrome( executable_path=one_path, chrome_options=self.options) mydriver_log = mydriver_log + '\r\n可找到 "' + one_path + '"' have_find = True break if not have_find: self.driver = self.webdriver.Chrome( chrome_options=self.options) mydriver_log = mydriver_log + '\r\n未找到chromedriver,使用默认方法。' except: print("=" * 60) print(" Chrome 浏览器初始化失败。信息:") print(mydriver_log) print('您可以检查下:') print( "1. 是否存在./chrome/chromedriver.exe 或 PATH 中是否存在 chromedriver.exe" ) print( "2. 浏览器地址栏输入 chrome://version 看到的chrome版本 和 运行 chromedriver.exe 显示的版本整数部分是否相同" ) print( "针对上述问题,请在 http://npm.taobao.org/mirrors/chromedriver 下载对应版本程序并放在合适的位置" ) print("3. 如不是以上问题,请提issue,附上报错信息和您的环境信息") print("=" * 60) input("按回车键继续......") raise