Python requests.get失败,403被禁止,即使在使用了头和会话对象之后也是如此

2024-05-19 09:14:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在发出获取JSON的GET请求,该请求在任何设备上的任何浏览器上都可以正常工作,但在python请求下则不行:

url = 'https://angel.co/autocomplete/new_tags'                         
params = {'query': 'sci', 'tag_type': 'MarketTag'}
resp = requests.get(url,params=params)
resp.raise_for_status()

给出HTTPError: 403 Client Error: Forbidden for url: https://angel.co/autocomplete/new_tags?query=ab&tag_type=MarketTag

所以我试着:

  1. Python requests. 403 Forbidden-我不仅尝试在头文件中使用用户代理,还尝试在firefox的Request Headers部分中找到用于JSON响应的所有其他头文件,但仍然是403
  2. Python requests - 403 forbidden - despite setting `User-Agent` headers-通过会话对象发出请求,我仍然得到403

可能的原因是什么?还有什么我可以试着用的吗

编辑:我在headers属性中使用的请求头(firefox中JSON的检查头部分):

{'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language':  'en-US,en;q=0.5',
'Connection': 'keep-alive',
'Host': 'angel.co',
'If-None-Match: 'W/"5857a9eac987138be074e7bdd4537df8"',
'TE': 'Trailers',
'Upgrade-Insecure-Requests': 1,
'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:71.0) Gecko/20100101 Firefox/71.0'}

Tags: httpsjsonurlnewtagtypetagsparams
1条回答
网友
1楼 · 发布于 2024-05-19 09:14:54

如果get请求即使在将用户代理添加到标头后仍返回403禁止,则可能需要添加更多标头,如下所示:

    headers = {
        'user-agent':"Mozilla/5.0 ...",
        'accept': '"text/html,application...',
        'referer': 'https://...',
    }
    r = requests.get(url, headers=headers)

在chrome中,可以在网络中找到请求头>;标题>;开发人员工具的请求头。(按F12将其切换。)

相关问题 更多 >

    热门问题