如何在Python的Selenium中修改Google Chrome的用户代理?
解决Chrome通过Selenium伪装成Microsoft Edge Mobile访问Bing的问题
嘿,我来帮你搞定这个用户代理切换的需求!你之前的思路方向是对的,不过可能在配置细节上需要调整,下面是完整且可直接运行的代码,还附带了关键细节的说明:
完整实现代码
from selenium import webdriver from selenium.webdriver.chrome.options import Options # 配置Chrome启动选项 chrome_options = Options() # 设置Microsoft Edge Mobile的用户代理字符串 # 这个UA可以从Edge浏览器开发者工具中获取(F12切换移动端后,控制台输入navigator.userAgent) edge_mobile_ua = "Mozilla/5.0 (Linux; Android 10; SM-G996U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Mobile Safari/537.36 EdgA/114.0.1823.82" chrome_options.add_argument(f'user-agent={edge_mobile_ua}') # 可选:强制网站显示桌面版界面(如果需要移动端界面可删除此行) chrome_options.add_argument('--force-desktop-site') # 启动Chrome浏览器 driver = webdriver.Chrome(options=chrome_options) # 打开Bing.com页面 driver.get("https://www.bing.com") # 可选:验证用户代理是否生效(在控制台打印当前UA) # print(driver.execute_script("return navigator.userAgent;")) # 完成操作后记得关闭浏览器 # driver.quit()
关键细节说明
- 用户代理字符串获取:如果上面的UA不符合你的需求,你可以自己打开Edge浏览器,按F12调出开发者工具,切换到移动端设备模拟模式,然后在控制台输入
navigator.userAgent,就能拿到当前模拟设备的Edge Mobile UA,直接替换代码里的字符串即可。 - 桌面/移动端界面切换:添加
--force-desktop-site参数后,即使UA是移动端,网站也会显示桌面版界面;如果想要访问移动端Bing,直接删掉这一行就行。 - 验证生效:代码里注释的打印UA的语句,运行后可以在控制台看到当前浏览器的用户代理,确认是否成功切换。
内容的提问来源于stack exchange,提问作者theCrabNebula




