记第一次破解js加密代码
2024-09-01 02:11:49
首先,我要爬的是这个网站:http://www.66ip.cn/nm.html,我想做个直接调用网站的接口获取代理的爬虫
这个接口看上去似乎很简单,直接输入需要的代理条件后,点击提取即可
点击提取后就是一个个ip了,
废话不多说,按f12点开,
发现需要两个cookie值,不知道从哪来,删掉cookie后,刷新页面再看看。
同样有这两个cookie,不过是新值,并且出了jquery.js没别的文件了。奇怪了,cookie怎么出来的,不过可以注意到被重定向了。
所以,把f12的net work下的 preserve log 勾选(新手才学到的),这样就可以看到所有的包了
三、
果然找到一个cookie,但是还有一个cookie值呢?查看这个521报文看不到内容,使用postman试试(这里一定要注意,今天被坑了很久,postman是依托于chrome的,chrome出于安全考虑,限制了postman的cookie功能,需要下载插件,点击一下会跳转到谷歌应用商店postman interceptor,然后在postman中打开改插件即可。还有要注意的是,chrome上的cookie,是会被postman使用的,记得删掉。下图的postman interceptor点开了)
四,然后发现果然执行了一段js代码,拿去格式化,简单修改,使用nodejs运行了一下,其实就是一句,document.cookies='***'的代码
五,这个还算好做,分离出来就行,然后发现,诶,每次没cookie的请求都是不同的js代码,干脆就提取出js代码,然后,替换部分js代码, 即可获取_ydclearance
@staticmethod
def get_66ip_cookies(url):
"""
66ip的加密cookie破解
:param self:
:param url:
:return:
"""
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)'
' Chrome/68.0.3440.106 Safari/537.36'}
res = requests.get(url, headers=headers)
yd_cookie = res.cookies['yd_cookie']
groups = re.search('<script language="javascript"> window.onload=setTimeout\("(.*?)", 200\); (.*?)</script>',
res.text)
x = groups.group(1)
y = groups.group(2)
y = y.replace('eval("qo=eval;qo(po);");', 'result = /_ydclearance=(.*?);/.exec(po)[1]; return result;')
jsfunc = execjs.compile(y)
_ydclearance = jsfunc.call(x[:2], re.findall('[0-9]+', x)[0])
return yd_cookie, _ydclearance
最新文章
- 不得不吐槽的Android PopupWindow的几个痛点(实现带箭头的上下文菜单遇到的坑)
- Spring Boot with Spring Data JPA (1) - Concept
- mysql while,loop,repeat循环,符合条件跳出循环
- React组件的分类
- 批量插入数据(基于Mybatis的实现-Oracle)
- MediaWiki使用指南
- iOS开发之多线程技术
- coursera机器学习笔记-神经网络,初识篇
- Android webview通过http get下载文件下载两次的问题及解决方法
- 触控(Touch) 、 布局(Layout)
- JDBC建立/关闭数据库连接
- 《算法导论》习题解答 Chapter 22.1-3(转置图)
- SharePoint 2010 ";客户端不支持使用windows资源管理器打开此列表"; 解决方法
- 【转】uvm 与 system verilog的理解
- 理解C++ 宏
- Stanford Parser学习入门(2)-命令行运行
- Exists与In效率分析
- 【转】patch命令
- Spring+SpringMVC+Mybatis+MAVEN+Eclipse+项目完整环境搭建
- IDF实验室解题学习笔记1
热门文章
- 解决Jquery Ajax提交 服务器端接收中文乱码问题
- Android 4.4KitKat AudioFlinger 流程分析
- centos7防火墙的关闭
- Calendar类经常用法 日期间的转换 set方法有巨坑
- 【转载】Oracle之内存结构(SGA、PGA)
- atitit. it软件项目管理---自己的员工,雇佣军、援军,混合的员工 杂牌 人员管理架构
- c语言循环单链表
- [JNA系列]Java调用Delphi编写的Dll之实例Delphi使用PAnsiChar
- form在submit之前使用request.setCharacterEncoding是没用的
- flask学习笔记(-操作数据库)