Python requests.get 失败并显示 403 forbidden,即使在使用 header 和 Session 对象之后

标签 python get python-requests http-headers http-status-code-403

我正在发出一个 GET 请求来获取 JSON,它在任何设备上的任何浏览器上都可以正常工作,但不能通过 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
所以我试过:
  • Python requests. 403 Forbidden - 我不仅尝试在标题中使用 User-Agent,还尝试在 Request Headers 中找到的所有其他标题firefox 中的 JSON 响应部分,但仍然是 403!
  • Python requests - 403 forbidden - despite setting `User-Agent` headers - 通过 Session 对象发出请求,我仍然得到 403!

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

    编辑:我在 headers 中使用的请求 header (在 firefox 中检查 JSON 的 header 部分)属性:
    {'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'}
    

    最佳答案

    如果即使在将用户代理添加到 header 后,get 请求仍返回 403 Forbidden,您可能需要添加更多这样的 header :

        headers = {
            'user-agent':"Mozilla/5.0 ...",
            'accept': '"text/html,application...',
            'referer': 'https://...',
        }
        r = requests.get(url, headers=headers)
    
    在 Chrome 中,可以在开发者工具的 Network > Headers > Request-Headers 中找到请求 header 。 (按 F12 切换它。)

    关于Python requests.get 失败并显示 403 forbidden,即使在使用 header 和 Session 对象之后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59633284/

    相关文章:

    python - 从 Python 和 AWS 说明书启动实例脚本不会创建任何实例

    mysql - Django 对象获取小数匹配

    swift - Alamofire 编码 invalidURL

    python - 如何使用python从Jotform下载数据?

    python - 尝试从 DnDBeyond 下载 json 文件出现 403 错误

    python - 打印列表中的列表时遇到问题

    poly(x, 2) 的 Python 等效项添加了一个 2 阶正交多项式

    python - PANDAS 中类似 SQL 的窗口函数 : Row Numbering in Python Pandas Dataframe

    在tinymce编辑器中获取选定的html内容

    python - 使用 python 请求库登录网站(kicktipp.de)