【问题标题】:When I send get requests, the response is not understood [duplicate]当我发送获取请求时,响应不被理解[重复]
【发布时间】:2020-10-29 13:39:18
【问题描述】:

当我发送 get 请求时,响应或结果是人类无法理解的 ..

enter image description here

我的代码:

get_log_head = {
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
    'accept-encoding': 'gzip, deflate, br',
    'accept-language': 'en-US,en;q=0.9',
    'sec-ch-ua': '"Chromium";v="86", "\"Not\\A;Brand";v="99", "Google Chrome";v="86"',
    'sec-ch-ua-mobile': '?0',
    'sec-fetch-dest': 'document',
    'sec-fetch-mode': 'navigate',
    'sec-fetch-site': 'none',
    'sec-fetch-user': '?1',
    'upgrade-insecure-requests': '1',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36'
}

get_login = session_request.get("https://www.ex.com", headers=get_log_head)
print(get_login.text)

解决什么问题?

【问题讨论】:

  • 执行print(get_login.content[:256]) 并在此处发布输出。也许前几个字节会给我们一个线索。您也可以尝试对 get_login.content 进行 gzip 解码,因为我看到您在请求标头中传递了 'accept-encoding': 'gzip, deflate, br'。

标签: python python-3.x encoding python-requests request


【解决方案1】:

这是因为网络服务器正在向您发送brotli 压缩响应,因为您设置了'accept-encoding': 'gzip, deflate, br',

requests 模块可以原生处理 gzip 和 deflate,并且会自动为您解码 (documented here) 但不是 Brotli。尝试将您的接受编码修改为 'accept-encoding': 'gzip, deflate'

【讨论】:

    【解决方案2】:

    为了获得人类可读的响应,我使用了以下代码:

    import requests
    session_request = requests.session()
    get_log_head = {
        'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
        'sec-ch-ua': '"Chromium";v="86", "\"Not\\A;Brand";v="99", "Google Chrome";v="86"',
        'sec-ch-ua-mobile': '?0',
        'sec-fetch-dest': 'document',
        'sec-fetch-mode': 'navigate',
        'sec-fetch-site': 'none',
        'sec-fetch-user': '?1',
        'upgrade-insecure-requests': '1',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36'
    }
    
    get_login = session_request.get("https://www.panago.com", headers=get_log_head)
    print(get_login.text)
    

    【讨论】:

      猜你喜欢
      • 2018-11-09
      • 1970-01-01
      • 1970-01-01
      • 2018-05-01
      • 1970-01-01
      • 2019-09-03
      • 2023-02-01
      • 1970-01-01
      • 2013-02-06
      相关资源
      最近更新 更多