示例#1
0
    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
示例#2
0
    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
示例#3
0
    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
示例#4
0
文件: mydriver.py 项目: enxier/xuexi
    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
示例#5
0
    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)
示例#6
0
 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