Python爬取山姆购物app时报错

查看 62|回复 3
作者:paoxueyuan   
在 用python抓取数据的时候,直接复制reqable中的请求头与参数:
原始参数:
[Asm] 纯文本查看 复制代码{
  "pageSize": 20,
  "useNewPage": true,
  "addressVO": {
    "cityName": "",
    "countryName": "",
    "districtName": "",
    "provinceName": ""
  },
  "storeInfoVOList": [
    {
      "storeType": 32,
      "storeId": 9991,
      "storeDeliveryAttr": [
        10
      ]
    },
    {
      "storeType": 256,
      "storeId": 6758,
      "storeDeliveryAttr": [
        2,
        3,
        4,
        5,
        6,
        9,
        12,
        13
      ]
    },
    {
      "storeType": 2,
      "storeId": 6505,
      "storeDeliveryAttr": [
        7
      ]
    },
    {
      "storeType": 4,
      "storeId": 6672,
      "storeDeliveryAttr": [
        3,
        4
      ]
    },
    {
      "storeType": 8,
      "storeId": 9992,
      "storeDeliveryAttr": [
        1
      ]
    }
  ],
  "uid": "181870804050",
  "pageNum": 1,
  "useNew": true,
  "isReversOrder": false,
  "isFastDelivery": false,
  "recommendFirstCategoryId": 34118,
  "recommendSecondCategoryId": 111040,
  "frontCategoryIds": [
    114051
  ]
}
[Asm] 纯文本查看 复制代码headers = {
        "User-Agent": "okhttp/4.8.1",
        "Connection": "Keep-Alive",
        "Accept-Encoding": "gzip",
        "Content-Type": "application/json",
        "system-language": "CN",
        "device-type": "android",
        "tpg": "1",
        "app-version": "5.0.93",
        "device-os-version": "12",
        "device-name": "Samsung_SM-S9080",
        "longitude": "114.011671",
        "latitude": "22.544368",
        "sny": "c",
        "rcs": "1",
        "spv": "1.1",
        "Local-Longitude": "0.0",
        "Local-Latitude": "0.0"
    }
url = "https://api-sams.walmartmobile.cn/api/v1/sams/goods-portal/grouping/list"
data = {"pageSize":20,"useNewPage":'true',"addressVO":{"cityName":"","countryName":"","districtName":"","provinceName":""},"storeInfoVOList":[{"storeType":32,"storeId":9991,"storeDeliveryAttr":[10]},{"storeType":256,"storeId":6758,"storeDeliveryAttr":[2,3,4,5,6,9,12,13]},{"storeType":2,"storeId":6505,"storeDeliveryAttr":[7]},{"storeType":4,"storeId":6672,"storeDeliveryAttr":[3,4]},{"storeType":8,"storeId":9992,"storeDeliveryAttr":[1]}],"uid":"181870804050","pageNum":1,"useNew":'true',"isReversOrder":'false',"isFastDelivery":'false',"recommendFirstCategoryId":34118,"recommendSecondCategoryId":113074,"frontCategoryIds":[111048]}
response = requests.post(url,headers=headers,json=data).json()
pprint.pprint(response)
模拟器中请尔都正常,但是用Python模拟就会报参数错:
[Asm] 纯文本查看 复制代码{'clientIp': '134.175.221.164',
'code': 'INTERNAL_ERROR',
'data': None,
'errorMsg': '',
'ignoreError': None,
'msg': '服务器异常,请稍后再试·',
'requestId': 'as|46e5b337c4374e9291a58a30106927f2.297.17080574481566328',
'rt': 0,
'success': False,
'traceId': '46480398987486aa'}

山姆, 文本

paoxueyuan
OP
  

header里 treq-id、t、n、st都在变,你为什么有信心把他们都删除?
paoxueyuan
OP
  


T4DNA 发表于 2024-2-16 12:58
header里 treq-id、t、n、st都在变,你为什么有信心把他们都删除?

这几个值带也一样的结果,因为不带这几个值得其它的api都可以正常返回数据,所以我觉得这这几个值可能不是必须的,就删除了
一级目录,二级目录都可以不带那几个值,这是三级目录的,经过测试带与不带都是一样的返回参数错误,所以我觉得问题可能出现在data参数中
paoxueyuan
OP
  


paoxueyuan 发表于 2024-2-16 13:00
这几个值带也一样的结果,因为不带这几个值得其它的api都可以正常返回数据,所以我觉得这这几个值可能不 ...

这几个值随着请求变,肯定是和时间有关的校验值啊,你带着也是过时的,慢慢解包逆向吧
您需要登录后才可以回帖 登录 | 立即注册

返回顶部