x宝评论抓取

news2024/11/23 13:15:46

#某宝评论接口sign参数逆向

1.接口速览

pCEosc8.png

多次请求发现,t为时间戳,sign为加密参数,盲猜和datat有关,sign为32位,盲猜是字符串的32位的MD5

2.搜索js代码

pCEo27j.png

这里为搜索的是appKey,就找到了sign,然后看上面的加密函数,很像MD5,于是进入调试,看看是不是原生的MD5

3.js调试

pCEogBQ.png

调试时,发现传入MD5(假设就是)的参数是几个参数进行了拼接

var token = '75f9f56e124f71ee88ab37eb4c636638' //固定的
var data = '{"itemId":"677739475107","bizCode":"ali.china.tmall","channel":"pc_detail","pageSize":20,"pageNum":2}' //评论相关的参数,包括商品的ID、评论的页数等
var l = 1686368240577   //(new Date()).getTime() //这个就是时间戳而已
var s = '12574478'   //这个参数在js的上面能看到是固定的,多次请求也能发现
var p1 = token + "&" + l + "&" + s + "&" + data   //进行拼接

我们把上面的拼接后的值去MD5加密看看,待会和网页产生的一不一样,就能知道,他的加密是不是就是原生的MD5,而没有进行魔改

pCEoWAs.png

得到d425068cc80e5528314225bc12c7427f,继续步进js调试,可以看到网页生成的sign和原生的md5加密是一样的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mSsfAp6B-1686373101298)(null)]

4.模拟请求

import json
import re
import time
import requests
import hashlib
from pygments import highlight, lexers, formatters


def get_sign(string):
    return hashlib.md5(string.encode()).hexdigest()


def req(sign,now,data):
    cookies = {
        #添加你自己的cookies
    }

    headers = {
        'authority': 'h5api.m.tmall.com',
        'accept': '*/*',
        'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
        'referer': 'https://detail.tmall.com/',
        'sec-ch-ua': '"Not.A/Brand";v="8", "Chromium";v="114", "Google Chrome";v="114"',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-platform': '"Windows"',
        'sec-fetch-dest': 'script',
        'sec-fetch-mode': 'no-cors',
        'sec-fetch-site': 'same-site',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    }

    params = {
        'jsv': '2.7.0',
        'appKey': '12574478',
        't': now,
        'sign': sign,
        'api': 'mtop.alibaba.review.list.for.new.pc.detail',
        'v': '1.0',
        'isSec': '0',
        'ecode': '0',
        'timeout': '10000',
        'ttid': '2022@taobao_litepc_9.17.0',
        'AntiFlood': 'true',
        'AntiCreep': 'true',
        'preventFallback': 'true',
        'type': 'jsonp',
        'dataType': 'jsonp',
        'callback': 'mtopjsonp3',
        'data': data,
    }

    response = requests.get(
        'https://h5api.m.tmall.com/h5/mtop.alibaba.review.list.for.new.pc.detail/1.0/',
        params=params,
        cookies=cookies,
        headers=headers,
    )
    json_str = re.findall(r'mtopjsonp3\((.*?)\)',response.text)
    content = json.loads(json_str[0])
    formatted_json = json.dumps(content, indent = 4, ensure_ascii = False, sort_keys = True)
    colorful_json = highlight(formatted_json, lexers.JsonLexer(), formatters.TerminalFormatter())
    print(colorful_json)

def get_time_13():
    return int(time.time()*1000)

if __name__ == "__main__":
    token = '换成你自己的token'
    pageNum = 1 #1-6页能爬取
    data = f'{"itemId":"677739475107","bizCode":"ali.china.tmall","channel":"pc_detail","pageSize":20,"pageNum":{pageNum}}'
    l = get_time_13()
    s = '12574478'
    p1 = token + "&" + str(l) + "&" + s + "&" + data
    print(p1)
    sign = get_sign(p1)
    req(sign=sign,now=l,data=data)

运行结果如下图:

pCEohhq.png

(sign=sign,now=l,data=data)


运行结果如下图:

[[外链图片转存中...(img-sotFdP7B-1686373096567)]](https://imgse.com/i/pCEohhq)

`qq讨论群:529528142`

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/630964.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何实现APP自动化测试?

APP测试,尤其是APP的自动化测试,在软件测试工程师的面试中越来越会被问到了。为了更好的回答这个问题,我今天就给大家分享一下,如何进行APP的自动化测试。 一、为了实现JavaAppiumJunit技术用于APP自动化测试,所以需要…

使用AIGC工具提升论文阅读效率

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

接口测试实战工具如何选择?这6个工具首选(建议收藏)

常见接口类型 • HTTP/HTTPS 类型接口 基于HTTP协议开发的接口现在应用是最为广泛的,这类API使用起来简单明了,因为它是轻量级的、跨平台、跨语言的, 但凡是第三方提供的API都会有HTTP版本的接口。 RESTful API也是基于HTTP协议的&#xff0c…

Android滴滴路由框架DRouter原理解析

作者:linversion 前言 最近的一个新项目使用了Clean Architecture模块化MVVM架构,将首页每个tab对应的功能都放到单独的模块且不相互依赖,这时就有了模块间页面跳转的问题,经过一番研究选择了滴滴的DRouter,因为其出色…

Image captioning中自定义文本数据整理为类似Flickr8k.token.txt的格式--->助力后期生成JSON格式用于训练

手把手实现Image captioning,将自定义文本数据整理为类似Flickr8k.token.txt的格式,助力后期生成JSON格式用于训练。如果感觉有用,不妨给博主来个一键三连,白天科研,晚上肝文,实属不易~ ~ ](https://imgse.com/i/p9FmMDK) 这里写目录标题 1. 任务需求2. 程序实现2.1 读取…

vistual studio 2017中导入pthread.h的配置方法

1.下载pthread.h的相关库文件 下载路径 https://www.mirrorservice.org/sites/sourceware.org/pub/pthreads-win32/pthreads-w32-2-9-1-release.zip 加压后得到两种系统版本的三个文件夹 pthreads.2 : 包含了pthread的源文件 Pre-built2 :包含了pthreads for win32的头文件…

软件测试04:软件测试流程和软件测试过程

软件测试04:软件测试流程和软件测试过程 软件测试流程 软件测试流程:获取测试需求->编写测试计划->制造测试方案->开发与设计测试用例->执行测试->提交缺陷报告->测试分析与评审->提交测试总结->准备下一版本测试 软件测试过…

网页JS自动化脚本(九)创建一键导出数据库到桌面的功能按钮

我们获取到了数据库,当然我们希望能把这个数据库给保存到本地电脑上进行一些数据的处理,我们这一节就添加一个按钮把数据一次性导出 保存到桌面为json格式 我们直接用TXT打开它如下图所示 然后再使用json转EXCEL的小工具规整之后如下图 好了我们下面上代码 // UserScript // n…

算法提高-图论-单源最短路的综合应用

单源最短路的综合应用 单源最短路的综合应用AcWing 1135. 新年好AcWing 340. 通信线路AcWing 342. 道路与航线AcWing 341. 最优贸易 单源最短路的综合应用 AcWing 1135. 新年好 多次dijkstra求每个点到其它点的最短距离, 此时相当于建好了一张图,每个点…

http客户端Fegin

1.RestTemplate方式调用存在的问题 代码可读性差,编程体验不统一 参数复杂URL难以维护 2.Feign的介绍 Feign是声明式的http客户端(只需要将发http请求的信息写出即可) 主要基于SpringMvc的注解来声明远程调用的信息: 步骤&…

(十二)K8S可视化工具Rancher部署项目应用实战

1.Rancher部署springboot私有镜像 连接私有镜像操作步骤 1.进入资源>>密文 2.进入镜像库凭证列表,点击添加凭证 3.输入凭证名称,选择自定义,填入自己的私有镜像仓库地址,这里使用的是阿里云,输入用户名和密码…

Zoho CRM SDK

前言 因早期公司的业务在Zoho CRM,现在孵化出自己的想法,想着能把一部分CRM的数据同步导出来,故研究Zoho CRM SDK的接入方法。虽说在文档上都有提及,但有部分细节不甚明了,也是一遍遍尝试出来的,所以分享出…

【Vue】六:路由(上)使用路由 多级路由

文章目录 1.多页面应用2. 单页面应用(使用路由)3. 多级路由 1.多页面应用 2. 单页面应用(使用路由) (1)安装vue-router插件 vue2 要安装 vue-router3 npm i vue-router3vu3 要安装 vue-router4 npm i vue…

字节薪酬体系被曝光,我真的酸了....

曾经的互联网是PC的时代,随着智能手机的普及,移动互联网开始飞速崛起。而字节跳动抓住了这波机遇,2015年,字节跳动全面加码短视频,从那以后,抖音成为了字节跳动用户、收入和估值的最大增长引擎。 自从字节…

【Java】数组详解

文章目录 一、数组的基本认识1.1 数组的概念1.2数组的创建与初始化1.3 数组的使用 二、数组的类型 — 引用类型2.1 JVM 内存分布2.2 什么是引用类型2.3 基本类型变量与引用类型变量的区别2.4 Java 中的 null 三、数组的应用3.1 保存数据3.2 函数参数3.3 函数返回值 一、数组的基…

STL——string和vector容器

初识STL **STL的基本概念****vector容器存放内置数据类型****在vector容器中存放自定义数据类型****vector容器嵌套vector容器****string容器——构造函数****string容器——赋值操作****string容器——字符串拼接****string容器——字符串的查找和替换****string容器——字符串…

Java阶段四Day01

Java阶段四Day01 文章目录 Java阶段四Day01Security框架通配符Vue脚手架 Vue-cli关于VUE关于VUE Cli创建Vue Cli工程解决端口被占用 Vue工程的工程结构[.idea]【重要】[node_modules]【重要】[public]favicon.icoindex.html [src][assets][compnents]【重要】[router][store]【…

Kafka详解(一)

第1章 Kafka概述 1.1 定义 1.2 消息队列 目前企业中比较常见的消息队列产品主要有Kafka、ActiveMQ、RabbitMQ、RocketMQ等。Message Queue ② 在大数据场景主要采用Kafka作为消息队列 ② 在JavaEE开发中主要采用ActiveMQ、RabbitMQ、RocketMQ Kafka存储数据,且保证…

虚函数+多态实现原理(一个冷门知识)

目录 多态实现 虚函数定义 先说原理 抛出问题 探究多态底层 冷门知识 多形态的大海 多态实现 完成类多态体现,多态两个条件: 虚函数重写 父类指针或者引用去调用虚函数。 虚函数定义 虚函数重写/覆盖条件 : 函数 三同 (函数名、参数、返回值) 不符合重写&…

【板栗糖GIS】——如何使用插件将微信读书笔记同步到notion

【板栗糖GIS】——如何使用插件将微信读书笔记同步到notion 注:本文创意以及插件开发皆是B站的【三此君】 视频链接如下: 全网唯一支持图文导出的微信读书插件,升级啦!主打一个惊艳。_哔哩哔哩_bilibili ,我只是记录…