如果我没有在requests.get()中指定用户代理,会发生什么情况?
问题描述
有人能解释一下如果我没有在requests.get(url)
中指定我的用户代理会发生什么情况吗?
如果我指定,将如下所示:
user_agent = {'User-agent': 'Mozilla/5.0'}
requests.get(url, headers=user_agent)
如果我不这样做,那就是
requests.get(url)
有什么不同呢?如果我不指定,用户代理的默认值是多少?
提前感谢!
User-Agent
报头通常由推荐答案浏览器或其他HTTP客户端发送时,没有任何定义的含义。它只是告诉服务器有关客户端的某些信息,服务器可以随心所欲地处理该信息。
通常,这将用于更改响应以保持与不同客户端(浏览器)的兼容性。例如,如果Web应用程序通过User-Agent
字符串检测到移动浏览器,则它可能会使用简化的站点进行响应。
但这里没有硬性规定。服务器可能会完全忽略此标头。
在其他情况下,您可能会发现应用程序,特别是较旧的应用程序,其编码依赖于仅在特定浏览器中可用的功能,如果它们不将客户端识别为他们喜欢的浏览器,则不会返回有用的响应。在这种情况下,将User-Agent
头设置为应用程序编码处理的支持良好的浏览器的头非常有用。事情不应该是这样的,但有时这是必要的。
默认情况下,requests
发送一个用户代理标头,该标头标识您正在使用的请求包的版本、Python版本和操作系统。
大多数Web应用程序编写时不会将python-requests
识别为浏览器,因此,如果将它们编码为特定于用于访问它们的浏览器,则它们可能不会返回良好的响应,在这种情况下,您需要伪造标头,使其看起来像是服务器端应用程序识别的更常见的浏览器。
相关文章