如何在我的Python代码中保持“用户代理头”始终是最新的?

问题描述 投票:0回答:3

在我的研究中,我找到了几种创建假

User-Agent
的方法,并在提出请求时隐藏我的
User-Agent

但我真正想要的是如何使我的

User-Agent
始终保持最新,而不需要手动获取值。

手动方式是在Google上搜索例如:

有正确的方法吗?

例如,目前我用来发出请求的

User-Agent
是这样的:

import requests
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
    }

url = f'https://XXXXXXXXXXXXXXXXX.com'
response = requests.get(url, headers=headers).json()

但是出现的 Chrome 版本已经是我当前使用的版本的旧版本了。我想知道是否有办法保持最新,而不必每次都手动修改!

python python-requests user-agent
3个回答
0
投票

您可以使用假用户代理:

https://github.com/hellysmile/fake-useragent

它有很多选项并保持用户代理更新。

from fake_useragent import UserAgent
ua = UserAgent()

ua.ie
# Mozilla/5.0 (Windows; U; MSIE 9.0; Windows NT 9.0; en-US);
ua.msie
# Mozilla/5.0 (compatible; MSIE 10.0; Macintosh; Intel Mac OS X 10_7_3; Trident/6.0)'
ua['Internet Explorer']
# Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB7.4; InfoPath.2; SV1; .NET CLR 3.3.69573; WOW64; en-US)
ua.opera
# Opera/9.80 (X11; Linux i686; U; ru) Presto/2.8.131 Version/11.11
ua.chrome
# Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/22.0.1216.0 Safari/537.2'
ua.google
# Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.13 (KHTML, like Gecko) Chrome/24.0.1290.1 Safari/537.13
ua['google chrome']
# Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11
ua.firefox
# Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0.1) Gecko/20121011 Firefox/16.0.1
ua.ff
# Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0.1
ua.safari
# Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25

# and the best one, random via real world browser usage statistic
ua.random

0
投票

我面临着同样的问题,在阅读了互联网上的各种示例(部分示例不起作用)之后,我能够使用 selenium 模块解决这个问题。

以下代码适用于以 Chrome 作为主浏览器的 Windows:

from selenium import webdriver

driver = webdriver.Chrome()
#driver.get("chrome://version/")
user_agent = driver.execute_script("return navigator.userAgent")
driver.quit()

print(f"User agent: {user_agent}")

我想这适用于任何其他浏览器,如 Firefox、Safari、Edge 等...

请注意,我评论了您获取/调用网站的行,您不需要它。一开始,我进入了一个现有的网站,但我不想进行不必要的网络连接,所以我切换到了这个内部 Chrome 页面。然后我尝试了没有这一行的代码,它仍然有效并为您提供用户代理。


-3
投票

您可以使用

navigator.userAgent
在控制台上以 JavaScript 形式获取浏览器用户代理。如何自动将此值存储到 python 脚本中?我真的不知道有什么方法可以做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.