死磕呀
学习成长之旅,技术交流 q:2528368896
展开
-
某验四代滑块验证
某滑块验证码四代流程分析原创 2024-02-23 16:21:13 · 131 阅读 · 0 评论 -
某度旋转验证码
某度旋转滑块广泛应用于一些网站,本文主要讲其验证逻辑原创 2022-12-05 17:43:25 · 741 阅读 · 3 评论 -
某车app登录参数分析
某app登录过程分析, 主要验证加密参数原创 2022-12-01 16:13:36 · 490 阅读 · 0 评论 -
某网站X-Signature签名破解
网站签名机制是很常见的技术手段,本文介绍某网站X-Signature签名破解,js还原原创 2022-11-22 18:11:12 · 1935 阅读 · 0 评论 -
某sm滑块动态参数获取-(ast方式)
某sm滑块动态参数一般会不定时更新,采取ast方式,以实现参数通用获取原创 2022-08-29 18:27:51 · 537 阅读 · 3 评论 -
YRX app第八题 python grpc
python grpc原创 2022-07-04 16:58:39 · 292 阅读 · 0 评论 -
某m影视apk m3u8地址key值
m3u8地址如下:https://video6.douquwuxian.com/haizeiwang/2/index.m3u8?key=2c3c8e9e5e04b4ffdde0f9a037254927&time=1648027263142apk:com.kumao.yingshi我们先观察一下这个地址,可以推测time为13为时间戳, key大概为MD5加密方式先用jadx反编译一下apk,全局搜索"key",调试发现此处的key很像我们需要的key进入类里面这里有key,有t原创 2022-03-24 11:14:37 · 2970 阅读 · 0 评论 -
某验三代滑块验证
网站示例: https://www.geetest.com/Sensebot模拟一次完整的滑块拖动触发上述请求, 其中第二步 gettype.php 返回一些js路径,实际调用过程可忽略不计,前面几部都很好分析,我们直接看最后一次请求加密参数为 gt、challenge、w, 其中 gt、challenge 为上个请求返回的,主要参数为w, 下文围绕w展开追述w参数的生成主要在slide.7.8.6.js文件里, 特征值为"\u0077", 我们可以使用工具反混淆一下js文件,以便更清晰的调原创 2022-03-22 12:12:45 · 1566 阅读 · 0 评论 -
某h x-zse-96还原
某乎请求头参数x-zse-96采用搜索关键词x-zse-96定位,x-zse-96=“2.0_” +y,向前找y,y为m.sign,m.spurce为url参数部分,m.signature即为x-zse-96的值如图11718行的signature打上断点,此处打上断点调试分析可知:s为url参数部分, f()为md5加密, u() 为 __g._encrypt(encodeURIComponent(e))调式逻辑如下:调试完成:算法还原js版实例:// f1 = 63 &am原创 2022-03-01 16:06:12 · 384 阅读 · 0 评论 -
fiddler/Charles抓包连不上网
抓包提示无网络转载 2022-01-14 17:03:59 · 1053 阅读 · 0 评论 -
python实现B站Bv号转Av号
计算方法及每一步详解源自:https://www.bilibili.com/video/BV1R7411y7kwpython实现import mathdef BvToAv(Bv): # 1.去除Bv号前的"Bv"字符 BvNo1 = Bv[2:] keys = { '1': '13', '2': '12', '3': '46', '4': '31', '5': '43', '6': '18', '7': '40', '8': '28', '9': '5',转载 2020-10-14 10:32:42 · 1078 阅读 · 1 评论 -
python 实现 列表嵌套字典去重、排序
def delrepeat(data,key): # data 列表 key 去重的键 new_data = [] # 用于存储去重后的list values = [] # 用于存储当前已有的值 for d in data: if d[key] not in values: new_data.append(d) values.append(d[key]) print(new_data)if __name__ == '__main__': li原创 2020-11-19 11:28:36 · 695 阅读 · 0 评论 -
某zhan sign
本脚本为获取b站sign,仅供参考import hashlibtry: from urllib import urlencodeexcept: from urllib.parse import urlencode# iOS 6680# app_key = '27eb53fc9058f8c3'# app_secret = 'c2ed53a74eeefe3cf99fbd01d8c9c375'# 云视听 TV# app_key = '4409e2ce8ffd12b8'# a原创 2021-06-18 18:38:51 · 636 阅读 · 1 评论 -
scrapy 发送payload方式的post请求
scrapy 发送一般的post请求采用formdata 进行请求,当发送payload方式的post请求时,使用formdata 请求就无法达到我们需要的效果。发现 FromRequest并不支持传request payload解决办法:使用Request,添加body,并注明请求方法为post即可必须要注意的点:1、请求头一定要加上‘Content-Type’: 'application/json’2、body 用json.dumps()转一下代码实现如下:yield scrapy.Requ原创 2021-01-08 17:32:44 · 883 阅读 · 0 评论 -
某宝h5端sign
因业务需求需破解淘宝sign值,过程如下在控制台搜索sign值:找到后打断点如下:进一步调试得知计算公式为:md5Hex(token&t&appKey&data)其中,token为 cookie里的 _m_h5_tk 下划线前面部分, appkey为固定值 12574478, data为请求参数中的data值python 代码实现如下:import hashlibappKey = '12574478'def get_sign(token, t, data):原创 2020-11-24 18:57:34 · 2676 阅读 · 6 评论 -
http状态码 30X 获取响应头里的 location
import requestsurl = 'http://xhslink.com/oSVbN'headers = { 'User-Agent': 'Mozilla/5.0'}response = requests.get(url=url, headers=headers, allow_redirects=False) 注:allow_redirects=False 禁止重定向allow_redirects 默认为true, requets库自动处理了重定向请求print(respo原创 2020-10-26 16:35:36 · 1596 阅读 · 0 评论 -
linux服务器 杀掉运行超过30分钟以上指定服务的进程
需求背景:爬虫中使用chrome浏览器,正常情况下运行几秒钟就会自动结束,但是有时候因为机器资源占用过多、或机器配置太低等原因会导致该进程僵死,过多则会占用过多的服务器资源,所以需要将该服务运行时间超过30分钟的进程杀掉。思路:1.通过ps获取该服务的PID和运行时间;2.判断运行时间是否超过30分钟(这里转换为1800秒了);3.根据判断结果确定是否杀掉进程;4.通过crontab定时执行该脚本;脚本(kill_chrome.sh):#!/bin/bashpro_name=chrome原创 2020-10-19 13:42:26 · 1347 阅读 · 0 评论 -
如何突破网站对selenium的屏蔽
使用selenium模拟浏览器进行数据抓取无疑是当下最通用的数据采集方案,它通吃各种数据加载方式,能够绕过客户JS加密,绕过爬虫检测,绕过签名机制。它的应用,使得许多网站的反采集策略形同虚设。由于selenium不会在HTTP请求数据中留下指纹,因此无法被网站直接识别和拦截。这是不是就意味着selenium真的就无法被网站屏蔽了呢?非也。selenium在运行的时候会暴露出一些预定义的Javascript变量(特征字符串),例如"window.navigator.webdriver",在非selenium转载 2020-05-09 10:01:11 · 648 阅读 · 0 评论 -
如何采集有签名机制的App或网站的数据
签名机制是现在App和网站反采集常见的手段,我们先来看一下什么是签名机制。我们以永辉生活微信小程序为例(我们曾做过一个采集永辉超市超级物种所有店铺商品的项目),当我们抓包分析时会发现其所有的HTTPS请求中都有一个sign参数(如下图所示)。如果我们尝试修改其它参数,构造一个自己的请求,会发现无法得到有效的数据(如下图所示)。APP服务端是如何知道我们篡改了这个请求呢?实际上这个sign参数是一个校验值,它是根据HTTP请求中其它参数计算出来的,算法是App开发者自己定义的。App服务端接收到H转载 2020-05-08 19:39:29 · 1274 阅读 · 1 评论 -
python爬虫+百度翻译实现英文—中文翻译
1、寻找目标网站真正url地址我们进入百度翻译,打开检查,选中network,在翻译框里面输入what,选中preview,在出现的Name里面查找,发现在v2transapi里有翻译结果出现,再过去看Headers。发现真正的url为:https://fanyi.baidu.com/v2transapi请求方式为:post返回的数据格式为:json在往下能看到cookie、refe...原创 2019-06-21 19:09:11 · 3384 阅读 · 4 评论 -
Python 爬虫解决登录的问题
一、使用cookie信息获取数据复制已登录的cookie,使用这个cookie构建headers,请求url时携带headers(优点:简单粗暴 缺点:具有时效性,超出时间需重新获取cookie)二、硬登录(模拟登录获取数据)1、使用requests (优点:速度快 缺点:麻烦,要分析各个参数,对于加密或随机的参数较难实现)一般来说,分以下几步:1)使用Session进行会话保持 se...原创 2019-06-13 23:16:50 · 6607 阅读 · 6 评论