Python Selenium WebDriver 如何设置请求头用户代理(User-Agent)参数

这篇具有很好参考价值的文章主要介绍了Python Selenium WebDriver 如何设置请求头用户代理(User-Agent)参数。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在本文中,将演示如何为浏览器设置用户代理,以及如何在Python Selenium WebDriver中读取用户代理。测试中的许多方案都需要操作用户代理。

什么是用户代理?

User-Agent 请求标头包含一个特征字符串,该字符串允许网络协议对等方标识请求软件用户代理的应用程序类型、操作系统、软件供应商或软件版本。它显示在 HTTP 请求标头中,不适用于响应标头。所有浏览器都支持它。

简而言之,用户代理是客户端(用户)的身份。

用户代理的通过格式:

User-Agent: Mozilla/<version> (<system-information>) <platform> (<platform-details>) <extensions>

Example:

Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:63.0) Gecko/20100101 Firefox/63.0

Selenium 没有实现任何直接方法来读取请求或响应标头。

注意:要运行以下示例,您需要在 PATH 环境变量中设置浏览器驱动程序路径详细信息,或者在创建浏览器实例时必须将浏览器驱动程序路径传递给executable_path变量。

获取用户代理值

Selenium没有任何直接的方法可以从WebDriver实例查询用户代理。我们需要使用执行javascript内置方法来执行此操作,并传递返回user-agent的脚本。

浏览器启动后,我们可以通过执行以下代码行来获取用户代理

# Store it in a variable and print the value
agent = driver.execute_script("return navigator.userAgent")
print(agent)
# directly print the value
print(driver.execute_script("return navigator.userAgent"))

Firefox 中的用户代理设置:

要更改 Firefox 浏览器的用户代理,请在 Firefox 配置文件中设置变量“general.useragent.override”,并在创建 Firefox WebDriver 实例时使用此配置文件。

from selenium import webdriver

profile = webdriver.FirefoxProfile()
profile.set_preference("general.useragent.override", "[user-agent string]")
# Below is tested line
# profile.set_preference("general.useragent.override", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:63.0) Gecko/20100101 Firefox/63.0")

driver = webdriver.Firefox(profile)

Chrome 中的用户代理设置:

在 Chrome 中,必须使用Options 对象来设置用户代理值。

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

opts = Options()
opts.add_argument("user-agent=[user-agent string]")
# Below is tested line
# opts.add_argument("user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36")

driver = webdriver.Chrome(chrome_options=opts)

Alternative way to pass driver path along with other details:
可选地,在传递驱动路径时,同时传递其它数据,如下

driver = webdriver.Firefox(profile, executable_path="path to geckodriver")
driver = webdriver.Chrome(chrome_options=opts, executable_path="path to chromedriver")

注:没有编写用户代理字符串的标准方式; 不同的Web浏览器使用不同的格式(有些格式大不相同),并且许多Web浏览器在其用户代理数据中添加了大量信息。文章来源地址https://www.toymoban.com/news/detail-551419.html

到了这里,关于Python Selenium WebDriver 如何设置请求头用户代理(User-Agent)参数的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python + Selenium WebDriver

    Python + Selenium WebDriver 一、搭建环境步骤 1、安装 python3.x (windows xp 不支持 python3.5+) 2、设置环境变量 path(安装时候也可以解决 勾上 add python.ext to path) 3、安装Selenium 用pip命令安装 pip install -U selenium 4、路径,pip可能定位不到,pip也可能定位到别的文件夹(perl) 方案:cd

    2024年02月12日
    浏览(44)
  • selenium.webdriver Python爬虫教程

    selenium安装和使用 pip install selenium 下载对应的浏览器驱动 实例化浏览器 元素定位 旧版本 selenium 函数 新版本 selenium 函数 返回复数元素的方法,分别在调用的方法加上一个s: findElements 用法示例 如果我们网页源码中有下面一段代码 元素属性 class 定位 css 选择器定位 ID 属性值

    2024年02月13日
    浏览(45)
  • python使用selenium webDriver时 报错

    可能原因和解决: 1. python 解释器 ---- 设置 2. 浏览器 版本 与 浏览器驱动 版本不一致 ---- 安装同一版本的 (下载chromedriver  |  谷歌驱动更高版本的测试版)   参考:Python使用Selenium WebDriver的入门介绍及安装教程-CSDN博客 Selenium安装WebDriver最新Chrome驱动(含116/117/118/119)_chromedri

    2024年02月04日
    浏览(39)
  • Selenium Chrome Webdriver 如何获取 Youtube 悬停文本

    导语 Youtube 是一个非常流行的视频分享平台,有时候我们可能想要爬取一些视频的信息,比如标题、播放量、点赞数等。但是有些信息并不是直接显示在网页上的,而是需要我们将鼠标悬停在某个元素上才能看到,比如视频的时长、上传时间等。这些信息被称为悬停文本,它

    2024年02月07日
    浏览(38)
  • Python Selenium/WebDriver 操作手册新版

    写在前面:本文为个人整理手册,有错误的地方欢迎指正,参考链接较多,重点参考,侵权删 通俗的解释: 引用:Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运

    2024年02月01日
    浏览(49)
  • Python Selenium.WebDriver 最强详解页面加载策略

    在通过Selenium加载一个网页时,Selenium都会等待页面加载完了才会运行下面的代码,这是因为 webdriver.get 方法会阻塞直到网页全部加载完成。 通常如果当页面加载花费大量时间时,可能是加载了很多外部资源「如:图像、css」,又或则是浏览的是国外网站,使用的网络环境差

    2023年04月22日
    浏览(45)
  • Python使用Selenium Webdriver爬取网页所有内容

    有时候,我们在用urllib或者requests库抓取页面时,得到的html源代码和浏览器中看到的不一样。这将是我们面临的一个非常常见的问题。现在网页越来越多地采用Ajax、前端模块化工具来构建,整个网页可能都是由JavaScript渲染出来的,也就是说原始的HTML代码可能就是一个空壳,

    2023年04月08日
    浏览(45)
  • 使用python+selenium+webdriver 白嫖微软奖励积分

    python 3.6+ edge浏览器(推荐使用,因为在edge浏览器中可以获得额外12分,当然chrome浏览器也可以) webdriver (需匹配电脑安装的浏览器版本) selenium 4.8.0 首次运行需要先获取账号信息,由于这里使用webdriver,打开类似无痕浏览器,需要通过带cookie的方式登录微软账号 先执行该

    2024年02月06日
    浏览(62)
  • 【JS逆向】如何一招彻底解决selenium WebDriver无响应

    selenium 无响应,最常见的原因是,webDriver与浏览器版本不匹配导致的。 而chrome 目前新的版本都是会自动升级的,这就会导致一段时间不用selenium时,driver就无法使用了。 如果Driver不正常的话,会一直卡着,不会有响应,或者报错 或者是报这样一个错误 最好的解决方案是,进

    2024年02月01日
    浏览(63)
  • Python+Selenium+Unittest 之selenium13--WebDriver操作方法3-鼠标操作2

            这篇说下ActionChains里常用的几种鼠标操作的方法。 ActionChains常用的鼠标操作方法 click() 鼠标左键单击 double_click() 鼠标左键双击 context_click() 鼠标右键单击 move_to_element() 鼠标移动到某个元素上(鼠标悬浮操作) click_and_hold() 点击鼠标左键,不松开 drag_and_drop() 拖拽到某

    2024年01月22日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包