繁体   English   中英

使用“User-Agent”在Python中的Requests.get不模拟浏览器请求

[英]Requests.get in Python using “User-Agent” not simulating a browser request

我必须使用来自Linux终端的Python从网页收集信息,它工作得很好,但是当我尝试使用requests.get时,一些页面(并非所有页面)都检索到无效的URL,因为它们有代理检测器而且他们不知道如何回答我的请求(我不是Linux终端上的浏览器或移动应用程序)。

使用“User-Agent”标头也不起作用,我尝试了几种不同的方式来发送它来模拟我是一个Mozilla浏览器:

user_agent = {'User-Agent': 'Mozilla/5.0'}

要么

user_agent = {'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 5.1; hu-HU; rv:1.7.8) Gecko/20050511 Firefox/1.0.4'}

或许多其他组合。

在某些服务器中,当我尝试使用此行时:

page = requests.get(url, headers=user_agent)

我收到了一个错误的请求,因为这些服务器试图向我发送桌面或移动浏览器的网页,但他们无法识别它。

以这种方式发送用户代理我做错了吗? 我在Python笔记本中尝试了我的代码并且由于我当前(当然)从浏览器发送请求而完美地工作。

您使用的是非常旧的用户代理,实际上有些网站会因此阻止您。

>>> import requests
>>> header = {'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0',}
>>> url = 'http://www.w3.org/'
>>> r = requests.get(url, headers=header)
>>> r.headers
CaseInsensitiveDict({'content-length': '40737', 'content-location': 'Home.html', 'accept-ranges': 'bytes', 'expires': 'Tue, 24 Jun 2014 04:44:36 GMT', 'vary': 'negotiate,accept', 'server': 'Apache/2', 'tcn': 'choice', 'last-modified': 'Mon, 23 Jun 2014 11:15:15 GMT', 'etag': '"9f21-4fc7ef51956c0;89-3f26bd17a2f00"', 'cache-control': 'max-age=600', 'date': 'Tue, 24 Jun 2014 04:34:36 GMT', 'p3p': 'policyref="http://www.w3.org/2001/05/P3P/p3p.xml"', 'content-type': 'text/html; charset=utf-8'})
>>> r.request.headers
CaseInsensitiveDict({'Accept-Encoding': 'gzip, deflate, compress', 'Accept': '*/*', 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:32.0) Gecko/20100101 Firefox/32.0'})
>>> 

我使用假的UserAgent

如何使用:

from fake_useragent import UserAgent
import requests


ua = UserAgent()
print(ua.chrome)
header = {'User-Agent':str(ua.chrome)}
print(header)
url = "https://www.hybrid-analysis.com/recent-submissions?filter=file&sort=^timestamp"
htmlContent = requests.get(url, headers=header)
print(htmlContent)

输出:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1309.0 Safari/537.17
{'User-Agent': 'Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36'}
<Response [200]>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM