前提

对于爬虫,首先第一步是分析网页,获知需求数据的来源。在chrome浏览器打开生意参谋,通过使用fiddler或者charle抓包工具抓包,发现很多数据都是十六进制数据,这很明显是加密过的。

思路

既然数据是加密过的,那可以通过js逆向寻找到对应js文件,再找加密的代码段。
F12打开开发者工具,选择sources,按照下图路径找到vendors.js并打开,然后点击左下角{}进行格式化。

Ctrl+F打开底下的搜索框,输入c.setPublicKey即可定位到目标信息。下图,定位到的是AES加密密码IV偏移量,说明使用了CBC模式的AES加密。再往下看,可以看到解密函数和加密函数。
通过函数可以看出加密思路:明文-->AES加密-->base64编码-->16进制编码-->16进制密文
而解密思路则是放过来:16进制密文--> 16进制编码-->base64编码-->AES加密-->明文

我们可以通过断点调试看看其解密过程:
找到解密关键代码行,在左侧对于行数点击一下,打个红点。然后在生意参谋页面操作一下,搜索或者点击,请求数据。
F8进行逐步执行,当执行到断点处,可以在控制台输出一些变量看看。
输入e,得到十六进制密文:

输入r.enc.Base64.stringify(r.enc.Hex.parase(e))
密文经过十六进制编码和base64编码,变成base64编码密文:
把这段密文复制,打开网址:http://tool.chacuo.net/cryptaes
设置对应参数,即可解密获得明文。

也可以把十六进制的密文放进去解密,只需把base64换成hex就可以了
至此,解密思路已经清晰了。

python代码实现

1.使用某大佬提供的api ,可以不用了解解密原理,直接调用api,缺点是存在一定的网络延迟。
解密网站:http://app.miiow.com.cn:8181/Sycm/Tools.html
API:http://app.miiow.com.cn:8181/ajaxApi.ashx/@/dontlogin/sycm/decryptor
使用方法:

import requests
encrypt_data = {"data":"十六进制编码"}  #密文
url='http://app.miiow.com.cn:8181/ajaxApi.ashx/@/dontlogin/sycm/decryptor' #解密api
plaintext = requests.post(url=url,data=encrypt_data).json() #post 方法
print(plaintext)

2.使用python标准密码库进行解密
标准密码库:Crypto
ACSII编码库:binascii/ base64编码库: base64
AES就在Crypto.Cipher 库中,加密后输出的是acsii码,其解密输入的也是acsii码,故需要用到acsii与十六进制的转换库,binascii和base64选择一个就可以了。

from Crypto.Cipher import AES
from binascii import b2a_hex,a2b_hex
from base64 import b16decode,b16encode
KEY = b"xxxxxxxxxxxxxxxx" # AES密码,长度必须为16的倍数
IV = b"xxxxxxxxxxxxxxxx" # IV偏移量,长度必须为16的倍数# 解密
aes_obj1 = AES.new(KEY, AES.MODE_CBC, IV) #CBC模式
decrypt_data = b"yyyyyyyyyyyyyyyyyy" # 十六进制密文,长度必须为16的倍数
acsii_data = a2b_hex(decrypt_data) # 十六进制转acsii
# acsii_data = b16decode(decrypt_data) # 跟上面一样
plaintext = aes_obj1.decrypt(acsii_data) # AES解密,其输出为byte类型
print(plaintext)# 加密
aes_obj2 = AES.new(KEY, AES.MODE_CBC, IV)
encrypt_data = b"xxxxxxxxxxxxx"# 明文,长度必须为16的倍数,不足则需要补至为16的倍数
encrypted_data = aes_obj2.encrypt(encrypt_data) # AES加密,输入为byte类型
hex_data = b2a_hex(encrypted_data) # acsii转十六进制
# hex_data = b16encode(encrypted_data)
print(hex_data)

至此,结束!

生意参谋爬虫难点一 ——十六进制数据解密相关推荐

  1. Java模拟生意参谋登录_用Excel实现生意参谋爬虫,伪装登陆状态

    因为在Excel里面难以实现自动登录 今天介绍一种用PowerQuery爬取生意参谋数据的方法,只作学习用,拓展一下思维,切忌大量爬取生意参谋数据,以免被封! 需要用到M语言的几个函数: Json.D ...

  2. 生意参谋牵手Quick BI 让数据再次驱动店铺经营

    刚刚过去的一周,超两百家店铺体验了阿里巴巴官方全渠道.全链路.一站式数据平台生意参谋推出的全新功能,自助分析. 作为生意参谋联合Quick BI的初次尝试, "自助分析"面向店铺提 ...

  3. python抓取网站访客手机号_电商 生意参谋 抓取 访客数据 Python版

    import requests import json import pandas as pd import time # getRtVisitor.json session = requests.S ...

  4. python 生意参谋_如何爬取生意参谋数据?是不是违规操作?

    生意参谋是阿里巴巴为商家打造的一站式.个性化.可定制的商务决策体验平台.近期发现,有部分人员使用爬虫爬取生意参谋平台数据,影响商家的用户体验.到底是如何爬取生意参谋数据呢? 官方推荐淘宝.京东.拼多多 ...

  5. 爬取数据是违法的吗_爬取生意参谋数据是不是违规行为?有什么后果呢?

    最近看了几个电商插件,比如爽歪歪啊店侦探啊等插件,都有对关键词等数据的一个侦测.但是最近阿里在打击爬取生意参谋数据的行为,很多人还不了解这种行为,今天小编就为大家做详细介绍. 官方推荐平台" ...

  6. 爬虫--淘宝登录及生意参谋transit-id和data破解

    生意参谋是淘宝商家分析市场行情最常见的工具之一.淘宝为了防爬虫可谓下了不少功夫. 本次为了写一款抓取生意参谋数据的爬虫,真是费了不少很大的劲才破解里面的数据加密. 1. 登录 首先爬虫肯定是自动化抓取 ...

  7. 生意参谋获取数据系列章节

    1.生意参谋采集过程中的链接测试工具Sycm Request Test 2. 生意参谋漏洞之无限"任意店铺"销售数据"查询及一些扩展 3.深思淘宝生意参谋改版数据权限减少 ...

  8. 生意参谋数据data,拼多多加密系列参数(anti-content,crawlerInfo),唯品会加密参数compassS破解

    1.生意参谋数据data解密 在我们请求访问生意参谋的时候,我们可以看见有一些数据返回的结果已经是加密之后的数据了,变成了一些我们不认识的文本数据,类似于下图: 我们将获取到的data放入解密脚本,可 ...

  9. 生意参谋数据分析师考试

    小明想看看竞争对手店铺的引流关键词是哪些,小李说这是无法看到的,你认为他说的对吗? A 正确 B 错误 小李制作新品标题,在生意参谋的市场工具里面的搜索分析中可以获取关键词的很多数据,新品应该参照哪种 ...

  10. python 爬取生意参谋数据_Excel vba爬取生意参谋数据,原来是可以的,现在不行了,请懂的大佬给分析分析,修改下代码-ExcelVBA程序开发-ExcelHome技术论坛 -...

    Sub 生意参谋() WebBrowser.Show WebBrowser.Height = 600 WebBrowser.Width = 950 Set ie1 = WebBrowser.WebBr ...

最新文章

  1. 10个奇葩的代码注释,笑出声!
  2. Mac上使用homebrew安装PostgreSql
  3. api 文件夹index.js 集合写法
  4. 投色子--html demo
  5. python图片ocr识别手写印刷体中英文字体
  6. html oa 表单,OA表单制作(致远)
  7. macOS禁用指定应用联网的方法
  8. 目标检测—DiffusionDet:用于检测的概率扩散模型笔记—DDPM
  9. 用记忆法记忆单词的M种方法 吴天胜
  10. java程序写一个数的平方根_Java程序查找给定数字的平方根
  11. 《拆掉思维里的墙》简评和部分摘录
  12. 挑战程序设计竞赛:反转法
  13. Android应用App开发工具
  14. Java有参构造和无参构造
  15. HBase(1):简介
  16. ubuntu 下实现 quagga镜像
  17. 《太阁立志传4》 所有武将卡的取得
  18. 网页批量下载图片-怎么一键快速下载网页图片的工具
  19. JS实现浏览器点击下载图片
  20. 20230404英语学习

热门文章

  1. UML(Unified Modeling Language) 统一建模语言
  2. js 正则表达式判断非法字符以及常用正则表达式。
  3. qca9533 openwrt 启动信息
  4. 马尔科夫随机场:定义、性质,最大后验概率问题,能量最小化问题
  5. 模2除法与二进制除法
  6. 谷歌身份验证器的一次性验证_使用一次性密码创建和应用多因素身份验证策略
  7. 一张图概括淘宝直播背后的前端技术 | 赠送多媒体前端手册
  8. Hadoop fs shell命令汇总
  9. 使用Python获取键盘的输入
  10. fdfs文件服务环境搭建详细教程