selenium 谷歌 火狐 浏览器设置参数

谷歌浏览器

from selenium import webdriver
import os

# 进入浏览器设置
options = webdriver.ChromeOptions()
# 谷歌无头模式
options.add_argument('--headless')
options.add_argument('--disable-gpu')
# 设置页面大小
options.add_argument('window-size=1200x600')
# 设置中文
options.add_argument('lang=zh_CN.UTF-8')
# 更换头部
options.add_argument('user-agent="Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20"')
# 设置代理
options.add_argument('proxy-server=' + proxy)
# 不加载图片
options.add_experimental_option('prefs', {"profile.managed_default_content_settings.images": 2})
# 设置下载路径
options.add_experimental_option('prefs', {"download.default_directory": os.path.abspath('数据\\')})
# 除去“正受到自动测试软件的控制”提示框
options.add_argument('disable-infobars')
# 打开开发者模式
options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 不使用自动化扩展
options.add_experimental_option('useAutomationExtension', False)
# 去除selenium的一个指纹
browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
   "source": """
    Object.defineProperty(navigator, 'webdriver', {
      get: () => undefined
    })
  """
})
# 导入当前py文件目录下的chromedriver
executable_path = os.path.abspath('chromedriver.exe')

browser = webdriver.Chrome(executable_path=executable_path, chrome_options=options)
url = "https://httpbin.org/get?show_env=1"
browser.get(url)
# 设置浏览器窗口大小
browser.set_window_size(1552, 800)
# 删除原来的cookie
browser.delete_all_cookies()
# 添加cookie
browser.add_cookie({'name':'ABC','value':'DEF'})
# 刷新当前页面
browser.refresh()
# 通过js新打开一个窗口
page_js='window.open("https://www.baidu.com");'
browser.execute_script(page_js)
# 用js点击元素
button = browser.find_element_by_xpath('//*[@class="button"]')
browser.execute_script("$(arguments[0]).click()",button)
# 用js滑动滑动条
js = "var q=document.documentElement.scrollTop="
for i in range(1, 15):
     browser.execute_script(js + str(i * 100))
# 切换浏览器最新页面窗口
browser.switch_to.window(browser.window_handles[-1])
# 切换浏览器至第一个iframe框架
browser.switch_to.frame(1)
# 切换浏览器的弹出框 并点击同意
self.browser.switch_to.alert.accept()
# 浏览器窗口对象
browser.window_handles: list
# 关闭当前窗口
browser.close()
# 关闭浏览器
browser.quit()

利用Chrome DevTools协议。它允许客户检查和调试Chrome浏览器。

打开cmd,在命令行中输入命令:

chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\selenum\AutomationProfile"

对于-remote-debugging-port值,可以指定任何打开的端口。

对于-user-data-dir标记,指定创建新Chrome配置文件的目录。它是为了确保在单独的配置文件中启动chrome,不会污染你的默认配置文件。

还有,不要忘了在环境变量中PATH里将chrome的路径添加进去。

此时会打开一个浏览器页面,我们输入淘宝网址,我们把它当成一个已存在的浏览器:
selenium通过设置代理,来监听该浏览器,从而控制浏览器,接管浏览器例子:

from selenium import webdriver
 
options = webdriver.ChromeOptions()
options.debugger_address = "127.0.0.1:9222"
browser = webdriver.Chrome(options=options)

火狐浏览器

from selenium import webdriver
from selenium.webdriver.common.proxy import * 
'''
#这种方法在py3好像有点问题隐藏了
# 代理
myProxy = '202.202.90.20:8080'
# 代理格式
proxy = Proxy({
  'proxyType': ProxyType.MANUAL, 
  'httpProxy': myProxy, 
  'ftpProxy': myProxy, 
  'sslProxy': myProxy, 
  'noProxy': ''
 })

profile = webdriver.FirefoxProfile()
profile = get_firefox_profile_with_proxy_set(profile, proxy)
'''
ip = '27.44.221.62:4213'
ip_ip = ip.split(":")[0]
ip_port = int(ip.split(":")[1])
profile = webdriver.FirefoxProfile()
profile.set_preference('network.proxy.type', 1)  # 默认值0,就是直接连接;1就是手工配置代理。
profile.set_preference('network.proxy.http', ip_ip)
profile.set_preference('network.proxy.http_port', ip_port)
profile.set_preference('network.proxy.ssl', ip_ip)
profile.set_preference('network.proxy.ssl_port', ip_port)
profile.update_preferences()
driver = webdriver.Firefox(profile)

profile.set_preference("general.useragent.override", user_agent)

# firefox无头模式
options = webdriver.FirefoxOptions()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
options.add_argument('window-size=1200x600')
executable_path = os.path.abspath('geckodriver.exe')

driver=webdriver.Firefox(proxy=proxy, profile=profile, 
						 options=options, executable_path=executable_path) 
driver.get('https://www.baidu.com') 
driver.quit()
options = webdriver.FirefoxOptions()
# 不加载图片,加快访问速度
#options.set_preference('permissions.default.image',2)
# 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium  火狐好像不用设置
#options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 添加本地代理

## 第二步:开启“手动设置代理”
options.set_preference('network.proxy.type', 1)
## 第三步:设置代理IP
options.set_preference('network.proxy.http', '221.180.170.104')
## 第四步:设置代理端口,注意端口是int类型,不是字符串
options.set_preference('network.proxy.http_port', 8080)

# 添加UA
#ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
#options.add_argument('user-agent=' + ua)

driver = webdriver.Firefox(options=options)
  • 12
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用Selenium调用Firefox浏览器,首先需要安装一些必要的组件和驱动程序。下面是一些步骤可以帮助你实现这一目标: 1. 首先,确保你已经安装了Firefox浏览器和Python。 2. 下载Geckodriver,这是Firefox浏览器的驱动程序。你可以在https://github.com/mozilla/geckodriver/releases找到可用的版本。根据你的操作系统,下载适当的版本并将其解压到任意文件夹中。 3. 在Python脚本中导入selenium库: ``` from selenium import webdriver ``` 4. 指定Geckodriver的路径: ``` driver_path = r'D:\迅雷下载\driver\geckodriver.exe' ``` 5. 创建Firefox浏览器的实例: ``` driver = webdriver.Firefox(executable_path=driver_path) ``` 6. 使用`get()`方法打开一个网页: ``` driver.get('https://baidu.com') ``` 这将在Firefox浏览器中打开百度网页。 7. 最后,不要忘记关闭浏览器会话,以释放资源: ``` driver.quit() ``` 这些步骤应该能帮助你成功地使用Selenium调用Firefox浏览器。请确保你已按照上述步骤正确设置了Geckodriver的路径,并且已经安装了selenium库。如果你遇到了其他问题,可以查阅Selenium文档或在社区寻求帮助[1]。 : 本来在使用selenium调用谷歌浏览器的时候,因为一个网站的原因,一直会自动弹出网页的通知,如下: : 主要介绍了python selenium firefox使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值