python采集电商jd app商品详情数据(2023-10-30)

news2024/11/17 19:43:56

一、技术要点:
  1、cookie可以从手机app端用charles抓包获取;
  2、无需安装nodejs,纯python源码;
  3、商品详情接口为:functionId ="wareBusiness";
  4、clientVersion = "10.1.4"同时也支持更高的版本;
  5、sign签名算法已转成python源码;

# -*- coding: UTF-8 -*-
import requests,json
import pkgutil
import time
from urllib.parse import urlparse, parse_qs, urlunparse
import hashlib
import execjs
from urllib.parse import quote
import io
import sys
from coreMethod import service

def savetofile(text,filename):
    file = open(filename, "w",encoding='utf-8' )
    file.write(text)
    file.close()

def print_hi(name):
    # Use a breakpoint in the code line below to debug your script.
    print(f'Hi, {name}')  # Press Ctrl+F8 to toggle the breakpoint.

def jdsku(skuId,source_value):
    body={"abTest800":True,"avoidLive":False,"brand":"Xiaomi","cityId":2258,"cpsNoTuan":None,"darkModelEnum":3,"districtId":2259,"eventId":"Searchlist_Productid","fromType":0,"isDesCbc":False,"latitude":"24.343321","lego":True,"longitude":"102.548038","model":"MI+4LTE","ocrFlag":False,"pluginVersion":101040,"plusClickCount":0,"plusLandedFatigue":0,"provinceId":"25","skuId":skuId,"source_type":"search","source_value":source_value,"townId":57314,"uAddrId":"0","utmMedium":None}
   
    data_json = json.dumps(body, ensure_ascii=False, separators=(",", ":"))
    data="body="+quote(data_json)+"&"
    data_len=len(data)
    print(data_len)

    functionId ="wareBusiness"
    uuid="d5aada6c69ce7237"     # uuid = "ZNVrYWHrDwC2EWDvDzSzDm=="
    clientVersion = "10.1.4"
    api_url="https://api.m.jd.com/client.action?functionId=wareBusiness&clientVersion=10.1.4&build=90060&client=android&d_brand=Xiaomi&d_model=MI4LTE&osVersion=6.0.1&screen=1920*1080&partner=ks006&oaid=&eid=eidA0c138122bas4uo1qCosmRnqrZBkTZ+zEF7qNa5UCxrzSE5IyVBHJw4jzuBKyNz0TPXE0oY0j0H/viRPJy5RUE1KWCJuMWV52ufEtPyZiLpXsetVD&sdkVersion=23&lang=zh_CN&eu=8363533373230323933313336333&fv=93D2634303938303363663032626&uuid=d5aada6c69ce7237&aid=d5aada6c69ce7237&area=25_2258_2259_57314&networkType=wifi&wifiBssid=d9077de60f51d1d1d6f228a96f318e0c&uts=0f31TVRjBSsqndu4%2FjgUPz6uymy50MQJ57QGqe4EVdPCC%2F%2BLaIc%2B0FPy%2BbUQbRC5NoDqqw5SzXn%2B5IzKEzRV7U4tEboVX3RmAjshdIn%2BrmSbjWta516veiyWgiDkt89AHGr9Rp0fcz01k8UAHnDKv9FJVcx9o%2BHKLIDKAa6QQUSBNqX7wvJlkldVcZElJ1qX8Gf%2F4RKU8CYMjipFaink5w%3D%3D&uemps=0-0&harmonyOs=0&scval=10053586372378";

    sign=service.get_st_sign_sv(data_json, functionId, uuid, clientVersion)
    # print('技术支持:复制:byc6352')
    api_url=api_url+'&'+sign
    real_url = api_url.replace("https://api.m.jd.com", "")
    print(real_url)

    # print(data_json)
    # data_url=quote(data_json)
    # print(data_url)
    headers={
        "method":"POST",
        "path": real_url,
        "scheme": "https",
        "charset": "UTF-8",
        "jdc-backup": 'pin=jd_eiFeOmfKYTrp;wskey=AAJk-9PXAEDx4VigFTYENYvbbF_ih0fwKNPxtlGjLBxeKZDIHTo0dlOGi9kthRmaIPxAQc8LOjXjivrJlZRmTDk92_7gn7xD;whwswswws=AAo0qnXeKECW5dHtHD2SyG-aA65Td2U3WT7WUwAAAAAA;unionwsws={"devicefinger":"eidA0c138122bas4uo1qCosmRnqrZBkTZ+zEF7qNa5UCxrzSE5IyVBHJw4jzuBKyNz0TPXE0oY0j0H\/viRPJy5RUE1KWCJuMWV52ufEtPyZiLpXsetVD","jmafinger":"AAo0qnXeKECW5dHtHD2SyG-aA65Td2U3WT7WUwAAAAAA"};',
        "Authority": "api.m.jd.com",
        "Accept": "*/*",
        # "Accept-Encoding": "br,gzip,deflate",
        "Accept-Language": "zh-CN,zh;q=0.9",
        "Cookie": 'pin=jd_LStcEbIzGjuR;wskey=AAJkcwjDAECOW8kziBHNbB1cl-BdbgXIW1TU1mHHu7XkyHRHGTt36GiksxgJbLVNZ4Ni-XKKKXahMVmrVoH6IagBm2_RD_-n;whwswswws=JD012145b9Ooh6gW1WYH168526050472603eFWOcdKH3-r3FyvX7W1dFwIKf7xAscQeSZ4_zhAV07wcda_pYWPbGQW_fnTydijhfpLKLUlVzIXVOor8dB-N7vkfs3rWJTxi0p1xghd~lnPHS6M-VPm1DZUIGaKbW62XTKAcWHCstLD9GZCUslR9H9xVy8TeBaMkOHcMNNOZ-86d4vztzqMQD2jeEoOoHmHbOUCNqSQL3MKF19Ct66wbQf3UlOZ7A9SdiTCPFifNr5Fwf7rWgoO2rnN4XQXFJ-YkcJvtdXPQ11I6r3V44VJc;unionwsws={"devicefinger":"eidAe50181223cs8uIOuW0dWRka9iu\/jXMDOK7iDr+Oor0tc4JwaCNymIsN1KVlEBsjUDXYycNGHW5iEV8gds4\/u1TN0isUUwp8eUG+Fk\/pxSMrh\/flR","jmafinger":"JD012145b9Ooh6gW1WYH168526050472603eFWOcdKH3-r3FyvX7W1dFwIKf7xAscQeSZ4_zhAV07wcda_pYWPbGQW_fnTydijhfpLKLUlVzIXVOor8dB-N7vkfs3rWJTxi0p1xghd~lnPHS6M-VPm1DZUIGaKbW62XTKAcWHCstLD9GZCUslR9H9xVy8TeBaMkOHcMNNOZ-86d4vztzqMQD2jeEoOoHmHbOUCNqSQL3MKF19Ct66wbQf3UlOZ7A9SdiTCPFifNr5Fwf7rWgoO2rnN4XQXFJ-YkcJvtdXPQ11I6r3V44VJc"};',
        "cache-control": "no-cache",
        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
        "content-length": str(data_len),
        "user-agent": "okhttp/3.12.1;jdmall;android;version/10.1.4;build/90060;screen/1080x1920;os/6.0.1;network/wifi;",
    }
    # body.encode(encoding='utf-8')
    res=requests.post(url=api_url, headers=headers,data=data)
    print(res)
    text=res.text
    savetofile(text,"data.txt")
    print(text)
    return text

# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print_hi('jd app商品详情。技术支持:v~+:byc6352;QQ:39848872')
    skuId = "10053586372378"    # skuId 为商品ID
    source_value="小学生书包"      # source_value为搜索接口的关键词
    jdsku(skuId,source_value)

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

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

相关文章

自学C语言的最恐怖的地方是什么?

自学C语言的最恐怖的地方是什么? 当年在网吧学C,人家在玩游戏,我在敲代码,基本上从9点敲到1点,然后再开始玩游戏。。。当时不是装逼,就是觉得有意思,而且当时计算机的确是一门很高大上的职业。…

redis加入window服务及删除

1、命令redis-server.exe --service-install redis.windows.conf,在服务中可配置自动启动 删除redis服务,先停止redis服务运行,管理员cmd模式,sc delete "redis" ,

mysql 间隙锁

mysql 默认是可重复读的隔离级别,这种默认会有幻读,幻读指的什么现象呢,就是在同一个事物中前后两次查到的结果不一致,那么mysql是怎么解决幻读的呢,这就是mvcc mvcc 什么是mvcc呢,就是多版本并发控制&am…

数据结构之树(图解)

文章目录 前言一、树是什么?二、树的特点三、树的相关概念四、树的表示方法(孩子兄弟表示法)总结 前言 在学习完线性结构,例如顺序表、链表、栈、队列后,我们要开始学习一个新的数据结构----树 一、树是什么&#xf…

超全整理,Jmeter性能测试-脚本error报错排查/分布式压测(详全)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能脚本error报错…

iOS 使用dsym符号化线上crash日志(ips文件)

1.获取崩溃日志 可以iphone连接mac复制当时的崩溃日志。 Xcode->Window->Devices View Device Logs 如果是testflight的崩溃是可以分享的,分享出来可能是ips文件。 把文件名称改成my.crash 使用脚本把新版本崩溃日志转成老版本格式 这一步不是必须的&…

c++小惊喜——stringstream

当需要读取一行字符串时&#xff0c;我们通常会有将这个字符串分开的想法 #include<iostream> #include<sstream> using namespace std;int main() {string str;getline(cin, str);stringstream ssin(str);string s[10];int cnt 0;while (ssin >> s[cnt]) …

vue实现记事本(含样式)

实现增加、删除、全删、合计功能。 html代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport&q…

中文复制到ubuntu内变为乱码

如果你将中文文本复制到 Ubuntu操作系统内后出现乱码&#xff0c;这可能是字符编码设置不正确所致。 检查终端编码设置&#xff1a; 在终端中&#xff0c;确保你的终端编码设置正确。你可以使用locale 命令来检查系统的默认编码 设置。一般来说&#xff0c;UTF-8是一种广泛支持…

【K8s】白话容器基础(二):隔离与限制

白话容器基础&#xff08;二&#xff09;&#xff1a;隔离与限制 容器与虚拟机 在上一篇文章中&#xff0c;我详细介绍了 Linux 容器中用来实现“隔离”的技术手段&#xff1a;Namespace。而通过这些讲解&#xff0c;你应该能够明白&#xff0c;Namespace 技术实际上修改了应…

如何本地部署Jellyfin影音服务器并实现在公网访问

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及&#xff0c;各种各样的使用需求也被开发出来&…

如何做好企业的设备维护和保养?报修工单管理系统软件有哪些?

随着信息化技术的飞速发展&#xff0c;企业运营的各个方面都在逐步实现信息化。设备维护作为企业运营中的重要环节&#xff0c;其可靠性对于企业的正常运营至关重要。报修工单管理系统软件作为解决这一问题的有效方案&#xff0c;已经受到业界的广泛关注。本文将从测评专家的角…

window安装es服务及删除

elasticsearch-service.bat install 删除es服务&#xff0c;先停止es服务运行&#xff0c;管理员cmd模式&#xff0c;sc delete "elasticsearch-service-x64"

基于安卓Android的城市公交查询app

项目介绍 本课题城市公交线路查询&#xff0c;采用安卓平台&#xff0c;所完成的可扩展性、可靠性以及可重用性的城市公交线路查询系统&#xff0c;以满足现实生活的需要。数据库选用MySQL。 前端为移动端&#xff0c;采用安卓框架uniapp&#xff0c;开发软件为Android Studio…

【方法】Excel表格如何禁止查看公式?

在日常工作中&#xff0c;很多人会选择用Excel来做数据表格&#xff0c;有时候还要通过公式来做数据。那如果计算数据所用的公式不想让别人看到&#xff0c;可以怎么做呢&#xff1f;今天小编就来分享一下&#xff0c;如何设置Excel表格禁止查看公式。 以下图表格为例&#xf…

String 字符串不可变带来的好处是什么?

目录 1. 线程安全(数据安全) 2. 节约内存 3. 提高集合的存取效率 1. 线程安全(数据安全) 众所周知&#xff0c;String 字符串是默认被 final 修饰的&#xff0c;是不可变的&#xff0c;那么首先能想到的一个优点就是线程安全&#xff0c;String 是存放在堆中的&#xff0c;是…

NSSCTF 2nd Web 题目复现

php签到 考点&#xff1a; 1.上传表单html的编写 2./. 绕过黑名单&#xff08;在Linux系统下1.php.是一个合法的文件名&#xff0c;系统不会自动把最后的点去掉并把文件当成php文件执行&#xff0c;所以点绕过只在Windows下有用&#xff09; 源代码&#xff1a; <?phpfun…

ICS TRIPLEX T9432 电源模块

电源模块是电子装备中的重要组成部分&#xff0c;用于供给电能以供给装备中的各种电子元件和电路。电源模块具备多种特征&#xff0c;以保证供给稳定、否靠的电源&#xff0c;顺应不同运用的需要。以下是电源模块的一些主要特征&#xff1a; 电压和电流输入&#xff1a; 电源模…

纬创出售印度子公司给塔塔集团,结束iPhone代工业务 | 百能云芯

纬创&#xff08;Wistron&#xff09;董事会于10月27日通过决议&#xff0c;同意以1.25亿美元的价格出售其印度子公司Wistron InfoComm Manufacturing (India) Private Limited&#xff08;WMMI&#xff09;的100%股权给塔塔集团&#xff0c;交割将尽快完成。此举将意味着纬创退…

高效学习之anki新手入门指南(ios端,包括ipad、ihpone设备)————创建、使用、备份、相关资料

文章目录 0 背景0.1 闭环学习0.2 什么是anki 1 开始使用1.1 导入1.2 创建空白组1.3 创建卡片1.3.1 利用anki创建卡片的两种方法1.3.2 复习材料分类 2 操作卡牌&#xff08;位于卡牌界面中“游览”&#xff09;2.1 清空卡牌状态&#xff08;清空之前的“重来”、“困难”、“简单…