【问题标题】:How to keep my 'User-Agent headers' always up to date in my python codes?如何让我的“用户代理标头”在我的 python 代码中始终保持最新?
【发布时间】:2022-01-18 04:04:29
【问题描述】:

在我的研究中,我发现了几种方法来创建假的User-Agent,并在发出请求时隐藏我的User-Agent

但我真正想要的是如何让我的User-Agent 始终保持最新状态,而无需手动获取值。

手动方式是在谷歌上搜索,例如:

有正确的方法吗?

例如,目前我用来发出请求的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当然不附带它。即使您使用了第三方库,也必须对其进行更新。
  • 另外,谷歌搜索只是报告您的浏览器提交给它的内容。您可以自己直接从浏览器中获取。
  • 这正是我的问题@Ouroborus,因为例如,如果我有几十个代码需要像我的示例中那样的标题,我是否必须在任何浏览器更新时手动更新它们?
  • 目前,无法避免某种更新。您可以做的最少更新是使用一个包并更新它。
  • 用户代理在某种程度上是动态的。要了解复杂性(以及“最新”UA 的可能来源),请参阅WhatIsMyBrowser

标签: python python-requests user-agent


【解决方案1】:

你可以使用假用户代理:

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

【讨论】:

  • 还有github.com/jnrbsn/python-latest-user-agents。但是,这些仍然需要您保持最新状态。
  • 晚安@GabrielVieira,我尝试使用这个技巧,但我意识到它提供给Chrome的值来自一个非常旧的版本Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.15 (KHTML, like Gecko) Chrome/24.0.1295.0 Safari/537.15,我真的怀疑是否可行根据我在我自己的电脑上找到的当前值进行更新,以保持一个非常正确的请求(就好像我在使用我在 Google 网站上搜索我的用户代理时找到的值一样)
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 2016-08-26
    • 2011-01-05
    • 1970-01-01
    • 2014-03-02
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多