在我的研究中,我找到了几种创建假
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 版本已经是我当前使用的版本的旧版本了。我想知道是否有办法保持最新,而不必每次都手动修改!
您可以使用假用户代理:
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
我面临着同样的问题,在阅读了互联网上的各种示例(部分示例不起作用)之后,我能够使用 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 页面。然后我尝试了没有这一行的代码,它仍然有效并为您提供用户代理。
您可以使用
navigator.userAgent
在控制台上以 JavaScript 形式获取浏览器用户代理。如何自动将此值存储到 python 脚本中?我真的不知道有什么方法可以做到这一点。