oneszsm 2022-07-16 17:00 采纳率: 66.7%
浏览 931
已结题

用PYTHON 的 requests库请求一个post 状态码是200,但是返回内容是空

问题遇到的现象和发生背景

用PYTHON 的 requests库请求一个post 状态码是200,但是返回内容是空。但同样的数据在fiddler 组合器,或者其它请求调试器 包括网页上找的中反回来JOSN。

img

得到的结果

img

另一个

img

网页上找的都可以

img

img


https://www.amazon.co.uk/gp/delivery/ajax/address-change.html

post

Host: www.amazon.co.uk
X-Requested-With: XMLHttpRequest
anti-csrftoken-a2z: gPEyD4jV7jHGbNAexAsKUIoQvXEwiNSOwFo3VfAAAAAMAAAAAGLPhJxyYXcAAAAA;hAQburVCSLlXy2uqtg9lK8QvCXBXwLD2A8Kfc6eVNr8pAAAAAGLPhJwAAAAB
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.49
Content-Length: 115

locationType=LOCATION_INPUT&zipCode=NG10+1PU&storeContext=generic&deviceType=web&pageType=Gateway&actionSource=glow




问题相关代码,请勿粘贴截图

import requests
import json


url = 'https://www.amazon.co.uk/gp/delivery/ajax/address-change.html'

header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.49',
    'viewport-width': '1278',
    'Host': 'www.amazon.co.uk',
    'Connection': 'keep-alive',
    'X-Requested-With': 'XMLHttpRequest',
    'anti-csrftoken-a2z': 'gPEyD4jV7jHGbNAexAsKUIoQvXEwiNSOwFo3VfAAAAAMAAAAAGLPhJxyYXcAAAAA;hAQburVCSLlXy2uqtg9lK8QvCXBXwLD2A8Kfc6eVNr8pAAAAAGLPhJwAAAAB',
    'Content-Type': 'application/x-www-form-urlencoded',

}

data = {
    'locationType': 'LOCATION_INPUT',
    'zipCode': 'NG10 1PU',
    'storeContext': 'generic',
    'deviceType': 'web',
    'pageType': 'Gateway',
    'actionSource': 'glow',
    'almBrandId': 'undefined'
}


zip_code = requests.post(url=url, headers=header, data=data)

print(zip_code.text)
print(zip_code.cookies)

运行结果及报错内容

img

我想要达到的结果

得到这个空的JOSN数据

  • 写回答

5条回答 默认 最新

  • EdsionWang 2022-07-16 21:16
    关注

    body中的data参数是用urlencoded形式传过去的,用urlencode处理一下

    import requests
    from urllib.parse import urlencode
     
    import requests
    from urllib.parse import urlencode
     
    url = 'https://www.amazon.co.uk/gp/delivery/ajax/address-change.html'
     
    header = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.114 Safari/537.36 Edg/103.0.1264.49',
        'viewport-width': '1278',
        'Host': 'www.amazon.co.uk',
        'Connection': 'keep-alive',
        'X-Requested-With': 'XMLHttpRequest',
        'anti-csrftoken-a2z': 'gPEyD4jV7jHGbNAexAsKUIoQvXEwiNSOwFo3VfAAAAAMAAAAAGLPhJxyYXcAAAAA;hAQburVCSLlXy2uqtg9lK8QvCXBXwLD2A8Kfc6eVNr8pAAAAAGLPhJwAAAAB',
        'Content-Type': 'application/x-www-form-urlencoded'
    }
     
    data = {
    'locationType': 'LOCATION_INPUT',
        'zipCode': 'NG10 1PU',
        'storeContext': 'generic',
        'deviceType': 'web',
        'pageType': 'Gateway',
        'actionSource': 'glow',
        'almBrandId': 'undefined'
    }
     
    post_data = urlencode(data)
    zip_code = requests.post(url=url, data= post_data,  headers=header)
     
    print(zip_code.text)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 7月24日
  • 已采纳回答 7月16日
  • 创建了问题 7月16日

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?