selenium怎么打开遨游浏览器和360浏览器以及QQ浏览器、百度浏览器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium怎么打开遨游浏览器和360浏览器以及QQ浏览器、百度浏览器相关的知识,希望对你有一定的参考价值。

各位大神,selenium怎么打开遨游浏览器和360浏览器以及QQ浏览器、百度浏览器,非常急,公司要做浏览器兼容性测试

测试结果可能是失败的 我在帖子找到一个测试的
from selenium.webdriver.chrome.options import Options

#360极速浏览器(基于chrome)
self.__browser_url = r'C:\Users\guoyahong\AppData\Local\360Chrome\Chrome\Application\360chrome.exe'
chrome_options = Options()
chrome_options.binary_location = self.__browser_url
self.driver = webdriver.Chrome(chrome_options=chrome_options)
参考技术A 建议打开360安全卫士功能大全里的默认软件设置 ,在里边设置默认浏览器就可以了。 参考技术B 1.建议换百度浏览器,百度浏览器功能更齐全,内容更丰富;
2.百度浏览器依靠百度强大的搜索平台,在满足浏览网页的基础上,以百度体系业务整合为优势,带给更方便的浏览方式,更舒适的上网体验。追问

我需要做兼容性测试,这些都要测,现在就是不知道怎么用自动化打开

参考技术C 你可以在电脑里安装这些浏览器,用这些浏览器分别打开试试。 参考技术D 在电脑里安装这些浏览器打开就可以了。

selenium打开网页被检测,怎么屏蔽和绕过

Selenium 操作被检测屏蔽

selenium打开浏览器模仿人工操作是诸多爬虫小白最万能的网页数据获取方式,但是在做自动化爬虫时,经常被检测到是selenium驱动。前段时间selenium打开维普高级搜索时得到的页面是空白页。

Selenium为何会被检测

主要原因是selenium打开的浏览器指纹和人工操作打开的浏览器指纹是不同的,比如最熟知的window.navigator.webdriver关键字,在selenium打开的浏览器打印返回结果为true,而正常浏览器打印结果返回为undefined,我们可以在
网站比较各关键字。

Selenium防检测方法

1. 修改window.navigator.webdriver关键字返回结果

from selenium import webdriver
options = webdriver.ChromeOptions()
# 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
driver = webdriver.Chrome(options=options)
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", 
            "source": """
            Object.defineProperty(navigator, 'webdriver', 
              get: () => undefined
            )
            """
        )

但是因为浏览器指纹很多,这种方法的局限性是显而易见的。

2. 使用stealth.min.js文件防止selenium被检测

import time
from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument('user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36')
driver = Chrome('./chromedriver', options=chrome_options)

with open('/Users/kingname/test_pyppeteer/stealth.min.js') as f:
    js = f.read()

driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", 
  "source": js
)

stealth.min.js文件来源于puppeteer,有开发者给 puppeteer 写了一套插件,叫做puppeteer-extra。其中,就有一个插件叫做puppeteer-extra-plugin-stealth专门用来让 puppeteer 隐藏模拟浏览器的指纹特征。

python开发者就需要把其中的隐藏特征的脚本提取出来,做成一个 js 文件。然后让 Selenium 或者 Pyppeteer 在打开任意网页之前,先运行一下这个 js 文件里面的内容。

puppeteer-extra-plugin-stealth的作者还写了另外一个工具,叫做extract-stealth-evasions。这个东西就是用来生成stealth.min.js文件的。

stealth.min.js资源:
链接:https://pan.baidu.com/s/1wiFnwOlHx3Wxe1UzW5gdrg
提取码:6hqf

3. undetected_chromedriver

undetected_chromedriver
使用方法
undetected_chromedriver 可以防止浏览器特征被识别,并且可以根据浏览器版本自动下载驱动。

import undetected_chromedriver as uc
driver = uc.Chrome()
driver.get('https://nowsecure.nl')

这是目前在用的一种方法,基本可以解决selenium被识别的问题

以上是关于selenium怎么打开遨游浏览器和360浏览器以及QQ浏览器、百度浏览器的主要内容,如果未能解决你的问题,请参考以下文章

如何使用selenium打开360浏览器

360浏览器怎么把电脑打开的网页同步到手机上?

网页无法打开,显示不支持此接口

testNg 关闭浏览器异常

QTP录制时如何设置打开IE以外的浏览器?

电脑IE浏览器的字体显示不正常,怎么调