开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 268|回复: 5
收起左侧

[易语言] py转易语言

[复制链接]
结帖率:65% (26/40)
发表于 5 天前 | 显示全部楼层 |阅读模式   **
50精币

import json
import ctypes
import os
import time
import requests

def mtop_sign(m_h5_tk, t, app_key, data):
    dll_path = os.path.join(os.path.dirname(__file__), "mtop_sign_x64.dll")
    dll = ctypes.CDLL(dll_path)
    dll.mtop_sign.argtypes = [
        ctypes.c_char_p,
        ctypes.c_char_p,
        ctypes.c_char_p,
        ctypes.c_char_p,
        ctypes.c_char_p,
        ctypes.c_int,
    ]
    dll.mtop_sign.restype = ctypes.c_int

    out_sign = ctypes.create_string_buffer(33)
    ret = dll.mtop_sign(
        m_h5_tk.encode("utf-8"),
        t.encode("utf-8"),
        app_key.encode("utf-8"),
        data.encode("utf-8"),
        out_sign,
        len(out_sign),
    )
    if ret != 0:
        raise RuntimeError(f"mtop_sign dll call failed: {ret}")
    return out_sign.value.decode("ascii")

def jsonTstr(data):
    return json.dumps(data, ensure_ascii=False, separators=(",", ":"))

cookies = {
  "xlly_s": "1",
  "cna": "yzG0IpTUyjACAd+gxvQg9/rm",
  "eleClientId": "aa2bdb6e-f631-52f8-e54d-29794de7ef50",
  "WMUSS": "MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ",
  "SWITCH_SHOP": "",
  "WMSTOKEN": "MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ",
  "OUTER_AUTH_LOGIN": "MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ%3BMZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ",
  "__ebg_utdid": "ebg-023488c0-eb67-460e-ae75-31b7a5f70f3e-1781351816721",
  "mtop_partitioned_detect": "1",
  "_m_h5_tk": "810eb2be421d44e96bdcc16be7f405e7_1781368513549",
  "_m_h5_tk_enc": "f2d169ccc5d079e32279a76bf9a5ef76",
  "isg": "BF9f6Y_DSTvYVE0noheEVJUV7rPpxLNmnHKoUfGoRo6TgGwC-ZY_tAiSRhD-GIve",
  "tfstk": "gmAEltbBfXhezLoDuEfr3VVh4dfKI_uscbA5raYJyzjhtU6kQntMdTYIJh5yyUjHd3gpa7S6fa6ne4Fy_h-4AagdV_lyXGdCAeTB4LS6fpZ5VD-wr3jTO71BadFykUdIJ_gd9eCRZmijG_8pJ_p48oAWTRjGuFqhrwD1s-fJw-ijGj_dsJ5wom9W-7uCbafl-MXusV7luwflE_Yi7aIGq_xlxRbGlZ4hraX3IV7RjgflZ3Yi7asGq_fkqFcxfHK8cZXnR2WQnkNbzEsD-GPugrQFKv8zF8eJ_wWeZNsZR2ON89ScF_cJtBx6rBOdBxefwF924Lxi_W-y-KxlACm0ag9AzUbVijUVjB8y_9p_xJbVTMWDtO4bN16kQC5Bt0ev5FSh319sBD65THJAD9DtX38NA3AFIko1VKT6tO-mf5-RUpxFSsjPQuQGsXAJLu2PKNQNcVuZVC5AoI72uEw8eOXc7igdE8eRKT_NcVlbe8BK_NSj8_f.."
}

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36',
    'Accept': 'application/json',
    # 'Accept-Encoding': 'gzip, deflate, br, zstd',
    'Content-Type': 'application/x-www-form-urlencoded',
    'sec-ch-ua-platform': '"Windows"',
    'sec-ch-ua': '"Google Chrome";v="149", "Chromium";v="149", "Not)A;Brand";v="24"',
    'sec-ch-ua-mobile': '?0',
    'x-ele-platform': 'eb',
    'x-ele-eb-token': 'MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ;MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ',
    'dnt': '1',
    'origin': 'https://nr.ele.me',
    'sec-fetch-site': 'same-site',
    'sec-fetch-mode': 'cors',
    'sec-fetch-dest': 'empty',
    'referer': 'https://nr.ele.me/app/eleme-nr-bfe-newretail/common-next',
    'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
    'priority': 'u=1, i',
    # 'Cookie': 'xlly_s=1; cna=yzG0IpTUyjACAd+gxvQg9/rm; eleClientId=aa2bdb6e-f631-52f8-e54d-29794de7ef50; WMUSS=MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ; SWITCH_SHOP=; WMSTOKEN=MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ; OUTER_AUTH_LOGIN=MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ%3BMZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ; mtop_partitioned_detect=1; _m_h5_tk=4f71aa816467436b03d1b52a2733cbbd_1781359831503; _m_h5_tk_enc=3ed14d72640af0cf33260cff6f6140f6; __ebg_utdid=ebg-023488c0-eb67-460e-ae75-31b7a5f70f3e-1781351816721; isg=BBkZQUthl6Uh10sx6LVqmv9XKAXzpg1YpvAu5zvM5sCbQjzUg_WuKlKQQAY0eqWQ; tfstk=gtaZutG_dNQaMPBua70V4TYK8bgTaqW5nrMjiSVm1ADgGmZeuJermc1tSqP0MvEsl1F6uyyUGcfAM1UU08N-GlMfXZ5qK-Hsf5g_0yyUUKTfQVVm3vVvlAa4MEl0i-Cth1IQ653xoT6SuaNT6jgZL8UwjXv39bhDjMiMq5UDNT65PasMtqWNFSNGirinMvcMSmcGTvcSMqcmoqfEKjlJmF2mo65EgjGMIhYMKwcosqD0nqfUtvhmof2mo6Pnpjcx6RevFbmG11A_JGphQVDusv8DzQhZj3FHcU8z8foaoRkF11aE_ckocqbYSP2QiPatvgKSkWZz3o2h8Fy4su2mCyXkuxZ-gScrradrKPP48cEBIhcr7AouSDAWl2i0Yyu_StK8OWki42ZCvOij7Rr-ecjdp-PEC-4ZxdWIhuNQSDyldeyx0l2Zt4jyXKhn-N4YbKxqjXhEF65Fhyu-Zzlza7tvDDmoTY1tmnKxj0YXbrLkDnnOJXk5soC..',
}

body={
    "draftSource": "job_draft",
    "draftReason": "complete_info",
    "pageNum": 2,
    "pageSize": 10,
    "sellerId": 1921347920095,
    "relationId": 127398688,
    "includeStoreCateName": True,
    "includeCateName": True,
    "draftCommodityStatus": [
        0
    ]
}

# 页码
body['pageNum']=1

data_str = jsonTstr({"param": jsonTstr(body)})

m_h5_tk = cookies['_m_h5_tk']
t = str(int(time.time()*1000))
# t="1781352093653"
app_key = "12574478"
params = {
    'jsv': '2.7.5',
    'appKey': app_key,
    't': t,
    'sign': mtop_sign(m_h5_tk,t,app_key,data_str),
    'v': '1.0',
    'api': 'mtop.ele.newretail.draftcommodity.searchDraftCommodity',
    'type': 'originaljson',
    'dataType': 'json',
    'valueType': 'originaljson',
}
data = {
    "data": data_str
}
print(params)
resp = requests.post(
    'https://mtop.ele.me/h5/mtop.ele.newretail.draftcommodity.searchdraftcommodity/1.0/',
    params=params,
    cookies=cookies,
    headers=headers,
    data=data,
)

print(resp.json())


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值
结帖率:65% (26/40)

签到天数: 4 天

 楼主| 发表于 5 天前 | 显示全部楼层   **
const axios = require("axios");
const path = require("path");
const koffi = require("koffi");

const dll = koffi.load(path.join(__dirname, "mtop_sign_x64.dll"));
const dllMtopSign = dll.func("const char* mtop_sign(const char* m_h5_tk, const char* t, const char* app_key, const char* data)");

function jsonTstr(data) {
  return JSON.stringify(data);
}

function mtopSign(mH5Tk, t, appKey, data) {
  const sign = dllMtopSign(mH5Tk, t, appKey, data);
  if (!sign) {
    throw new Error("mtop_sign dll call failed");
  }
  console.log(sign);
  return sign;
}

const cookies = {
  xlly_s: "1",
  cna: "yzG0IpTUyjACAd+gxvQg9/rm",
  eleClientId: "aa2bdb6e-f631-52f8-e54d-29794de7ef50",
  WMUSS: "MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ",
  SWITCH_SHOP: "",
  WMSTOKEN: "MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ",
  OUTER_AUTH_LOGIN: "MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ%3BMZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ",
  __ebg_utdid: "ebg-023488c0-eb67-460e-ae75-31b7a5f70f3e-1781351816721",
  mtop_partitioned_detect: "1",
  _m_h5_tk: "810eb2be421d44e96bdcc16be7f405e7_1781368513549",
  _m_h5_tk_enc: "f2d169ccc5d079e32279a76bf9a5ef76",
  isg: "BF9f6Y_DSTvYVE0noheEVJUV7rPpxLNmnHKoUfGoRo6TgGwC-ZY_tAiSRhD-GIve",
  tfstk: "gmAEltbBfXhezLoDuEfr3VVh4dfKI_uscbA5raYJyzjhtU6kQntMdTYIJh5yyUjHd3gpa7S6fa6ne4Fy_h-4AagdV_lyXGdCAeTB4LS6fpZ5VD-wr3jTO71BadFykUdIJ_gd9eCRZmijG_8pJ_p48oAWTRjGuFqhrwD1s-fJw-ijGj_dsJ5wom9W-7uCbafl-MXusV7luwflE_Yi7aIGq_xlxRbGlZ4hraX3IV7RjgflZ3Yi7asGq_fkqFcxfHK8cZXnR2WQnkNbzEsD-GPugrQFKv8zF8eJ_wWeZNsZR2ON89ScF_cJtBx6rBOdBxefwF924Lxi_W-y-KxlACm0ag9AzUbVijUVjB8y_9p_xJbVTMWDtO4bN16kQC5Bt0ev5FSh319sBD65THJAD9DtX38NA3AFIko1VKT6tO-mf5-RUpxFSsjPQuQGsXAJLu2PKNQNcVuZVC5AoI72uEw8eOXc7igdE8eRKT_NcVlbe8BK_NSj8_f..",
};

const headers = {
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",
  Accept: "application/json",
  "Content-Type": "application/x-www-form-urlencoded",
  "sec-ch-ua-platform": "\"Windows\"",
  "sec-ch-ua": "\"Google Chrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\"",
  "sec-ch-ua-mobile": "?0",
  "x-ele-platform": "eb",
  "x-ele-eb-token": "MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ;MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ",
  dnt: "1",
  origin: "https://nr.ele.me",
  "sec-fetch-site": "same-site",
  "sec-fetch-mode": "cors",
  "sec-fetch-dest": "empty",
  referer: "https://nr.ele.me/app/eleme-nr-bfe-newretail/common-next",
  "accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
  priority: "u=1, i",
};

const body = {
  draftSource: "job_draft",
  draftReason: "complete_info",
  pageNum: 2,
  pageSize: 10,
  sellerId: 1921347920095,
  relationId: 127398688,
  includeStoreCateName: true,
  includeCateName: true,
  draftCommodityStatus: [0],
};

body.pageNum = 1;

const dataStr = jsonTstr({ param: jsonTstr(body) });
const mH5Tk = cookies._m_h5_tk;
const t = String(Date.now());
const appKey = "12574478";

const params = {
  jsv: "2.7.5",
  appKey,
  t,
  sign: mtopSign(mH5Tk, t, appKey, dataStr),
  v: "1.0",
  api: "mtop.ele.newretail.draftcommodity.searchDraftCommodity",
  type: "originaljson",
  dataType: "json",
  valueType: "originaljson",
};

function cookieString(obj) {
  return Object.entries(obj)
    .map(([key, value]) => `${key}=${value}`)
    .join("; ");
}

async function main() {
  console.log(params);

  const resp = await axios.post(
    "https://mtop.ele.me/h5/mtop.ele.newretail.draftcommodity.searchdraftcommodity/1.0/",
    new URLSearchParams({ data: dataStr }).toString(),
    {
      params,
      headers: {
        ...headers,
        Cookie: cookieString(cookies),
      },
    },
  );

  console.log(resp.data);
}

main().catch((err) => {
  if (err.response) {
    console.error(err.response.status, err.response.data);
    return;
  }
  console.error(err);
[Python] 纯文本查看 复制代码
const axios = require("axios");
const path = require("path");
const koffi = require("koffi");

const dll = koffi.load(path.join(__dirname, "mtop_sign_x64.dll"));
const dllMtopSign = dll.func("const char* mtop_sign(const char* m_h5_tk, const char* t, const char* app_key, const char* data)");

function jsonTstr(data) {
  return JSON.stringify(data);
}

function mtopSign(mH5Tk, t, appKey, data) {
  const sign = dllMtopSign(mH5Tk, t, appKey, data);
  if (!sign) {
    throw new Error("mtop_sign dll call failed");
  }
  console.log(sign);
  return sign;
}

const cookies = {
  xlly_s: "1",
  cna: "yzG0IpTUyjACAd+gxvQg9/rm",
  eleClientId: "aa2bdb6e-f631-52f8-e54d-29794de7ef50",
  WMUSS: "MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ",
  SWITCH_SHOP: "",
  WMSTOKEN: "MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ",
  OUTER_AUTH_LOGIN: "MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ%3BMZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ",
  __ebg_utdid: "ebg-023488c0-eb67-460e-ae75-31b7a5f70f3e-1781351816721",
  mtop_partitioned_detect: "1",
  _m_h5_tk: "810eb2be421d44e96bdcc16be7f405e7_1781368513549",
  _m_h5_tk_enc: "f2d169ccc5d079e32279a76bf9a5ef76",
  isg: "BF9f6Y_DSTvYVE0noheEVJUV7rPpxLNmnHKoUfGoRo6TgGwC-ZY_tAiSRhD-GIve",
  tfstk: "gmAEltbBfXhezLoDuEfr3VVh4dfKI_uscbA5raYJyzjhtU6kQntMdTYIJh5yyUjHd3gpa7S6fa6ne4Fy_h-4AagdV_lyXGdCAeTB4LS6fpZ5VD-wr3jTO71BadFykUdIJ_gd9eCRZmijG_8pJ_p48oAWTRjGuFqhrwD1s-fJw-ijGj_dsJ5wom9W-7uCbafl-MXusV7luwflE_Yi7aIGq_xlxRbGlZ4hraX3IV7RjgflZ3Yi7asGq_fkqFcxfHK8cZXnR2WQnkNbzEsD-GPugrQFKv8zF8eJ_wWeZNsZR2ON89ScF_cJtBx6rBOdBxefwF924Lxi_W-y-KxlACm0ag9AzUbVijUVjB8y_9p_xJbVTMWDtO4bN16kQC5Bt0ev5FSh319sBD65THJAD9DtX38NA3AFIko1VKT6tO-mf5-RUpxFSsjPQuQGsXAJLu2PKNQNcVuZVC5AoI72uEw8eOXc7igdE8eRKT_NcVlbe8BK_NSj8_f..",
};

const headers = {
  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36",
  Accept: "application/json",
  "Content-Type": "application/x-www-form-urlencoded",
  "sec-ch-ua-platform": "\"Windows\"",
  "sec-ch-ua": "\"Google Chrome\";v=\"149\", \"Chromium\";v=\"149\", \"Not)A;Brand\";v=\"24\"",
  "sec-ch-ua-mobile": "?0",
  "x-ele-platform": "eb",
  "x-ele-eb-token": "MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ;MZAWZGMTAwMDM2ODY5OTcwNzEyUHpSS2JPeTFQ",
  dnt: "1",
  origin: "https://nr.ele.me",
  "sec-fetch-site": "same-site",
  "sec-fetch-mode": "cors",
  "sec-fetch-dest": "empty",
  referer: "https://nr.ele.me/app/eleme-nr-bfe-newretail/common-next",
  "accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
  priority: "u=1, i",
};

const body = {
  draftSource: "job_draft",
  draftReason: "complete_info",
  pageNum: 2,
  pageSize: 10,
  sellerId: 1921347920095,
  relationId: 127398688,
  includeStoreCateName: true,
  includeCateName: true,
  draftCommodityStatus: [0],
};

body.pageNum = 1;

const dataStr = jsonTstr({ param: jsonTstr(body) });
const mH5Tk = cookies._m_h5_tk;
const t = String(Date.now());
const appKey = "12574478";

const params = {
  jsv: "2.7.5",
  appKey,
  t,
  sign: mtopSign(mH5Tk, t, appKey, dataStr),
  v: "1.0",
  api: "mtop.ele.newretail.draftcommodity.searchDraftCommodity",
  type: "originaljson",
  dataType: "json",
  valueType: "originaljson",
};

function cookieString(obj) {
  return Object.entries(obj)
    .map(([key, value]) => `${key}=${value}`)
    .join("; ");
}

async function main() {
  console.log(params);

  const resp = await axios.post(
    "https://mtop.ele.me/h5/mtop.ele.newretail.draftcommodity.searchdraftcommodity/1.0/",
    new URLSearchParams({ data: dataStr }).toString(),
    {
      params,
      headers: {
        ...headers,
        Cookie: cookieString(cookies),
      },
    },
  );

  console.log(resp.data);
}

main().catch((err) => {
  if (err.response) {
    console.error(err.response.status, err.response.data);
    return;
  }
  console.error(err);
});

});
回复

使用道具 举报

结帖率:65% (26/40)

签到天数: 4 天

 楼主| 发表于 5 天前 | 显示全部楼层   **
改下面的 贴错了
回复

使用道具 举报

结帖率:50% (1/2)

签到天数: 18 天

发表于 4 天前 | 显示全部楼层   四川省成都市
缺少一个mtop_sign_x64.dll文件供调用,你获取PY源码的时候,还应该有个DLL文件;
饿了么商品搜索.e (963.46 KB, 下载次数: 4)
回复

使用道具 举报

结帖率:50% (1/2)

签到天数: 18 天

发表于 4 天前 | 显示全部楼层   四川省成都市
缺少签名DLL调用;
* “签名:” | “”
* “返回:” | “{"api":"mtop.ele.newretail.draftcommodity.searchdraftcommodity","appConf":null,"c":null,"data":{},"mappingCode":null,"ret":["FAIL_SYS_TOKEN_EXOIRED::令牌过期"],"traceId":"213e061917814147655361420ed9c6","v":"1.0"}”
222.png
回复

使用道具 举报

结帖率:43% (3/7)

签到天数: 18 天

发表于 4 天前 | 显示全部楼层   福建省泉州市
取某宝sign模块
https://bbs.ijingyi.com/forum.php?mod=viewthread&tid=14820828
(出处: 精易论坛)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表