Python实现JS解密并爬取某音漫客网站


Posted in Python onOctober 23, 2020

首先打开网站

https://www.zymk.cn/1/37988.html

打开开发者工具

Python实现JS解密并爬取某音漫客网站

选择XHR标签页,没有找到什么

再查看一下这些图片的URL值

http://mhpic.xiaomingtaiji.net/comic/D%2F%E6%96%97%E7%A0%B4%E8%8B%8D%E7%A9%B9%E6%8B%86%E5%88%86%E7%89%88%2F20%E8%AF%9D%2F1.jpg-zymk.middle.webp

尝试搜索图片元素

Python实现JS解密并爬取某音漫客网站Python实现JS解密并爬取某音漫客网站

发现有一个js文件,打开搜索

Python实现JS解密并爬取某音漫客网站

发现这里有一个疑点,这不是html里面的字段吗,那么 “i.getPicUrl(e)” 不就是那个图片的URL的值了吗

在这里下一个断点,走你

Python实现JS解密并爬取某音漫客网站

果然,这个就那个图片URL生成的切入点,现在就是看调用栈,找到这个函数的起点,点击右侧的 ”e.init“,这里有一个setInitData函数,从名字来看,应该就是设置初始数据的地方,在这里下一个断点,进去看看

Python实现JS解密并爬取某音漫客网站

这里有一个this.imgpath,这个应该就是图片的URL值了,点击F10,再单步调式,来到了charcode函数

Python实现JS解密并爬取某音漫客网站

进去看看,这里应该就是加密函数了

Python实现JS解密并爬取某音漫客网站

这里一步步调式,不要着急,来到了这里

Python实现JS解密并爬取某音漫客网站

继续单步调式,在第二次打开这么VM文件的时候,”__cr.imgpath“这个看起来很熟悉呀

Plain Text
"L-:N-M>-A>-A?-M?-I8-J<-M@-@J-@L-M?-IA-JA-M>-@J-@>-M=-@@-@>-M?-@A-@@-:N:8-M@-IN-AL-:N"

打开页面源代码,就在这里啦,不仅仅有图片的URL加密值,还有其他数据,这些都是在后面图片URL拼接需要使用到的

Python实现JS解密并爬取某音漫客网站

现在我们再重新看看那个加密函数,它无非就是遍历那个加密值的每个字符,获取其Unicode值,再与__cr.chapter_id进行相关运算,然后再得到的Unicode数值返回字符

现在我们可以用python仿写这个算法

Python实现JS解密并爬取某音漫客网站

接下就是平常get请求获取必要的数据了,通过正则获取元素,拼接,以下是源码

Python实现JS解密并爬取某音漫客网站 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详解Python中的变量及其命名和打印
Mar 11 Python
Python数据结构之哈夫曼树定义与使用方法示例
Apr 22 Python
python读取csv文件并把文件放入一个list中的实例讲解
Apr 27 Python
Python实现随机创建电话号码的方法示例
Dec 07 Python
Python之使用adb shell命令启动应用的方法详解
Jan 07 Python
Python小进度条显示代码
Mar 05 Python
Python时间序列处理之ARIMA模型的使用讲解
Apr 02 Python
python 命令行传入参数实现解析
Aug 30 Python
python实现超市商品销售管理系统
Nov 22 Python
使用python实现回文数的四种方法小结
Nov 24 Python
win10从零安装配置pytorch全过程图文详解
May 08 Python
python RSA加密的示例
Dec 09 Python
解决Python 写文件报错TypeError的问题
Oct 23 #Python
python 利用Pyinstaller打包Web项目
Oct 23 #Python
python logging模块的使用详解
Oct 23 #Python
Pycharm自动添加文件头注释和函数注释参数的方法
Oct 23 #Python
Python中免验证跳转到内容页的实例代码
Oct 23 #Python
python对 MySQL 数据库进行增删改查的脚本
Oct 22 #Python
Python提取视频中图片的示例(按帧、按秒)
Oct 22 #Python
You might like
PHP+jQuery+Ajax实现分页效果 jPaginate插件的应用
2015/10/09 PHP
php中让人头疼的浮点数运算分析
2016/10/10 PHP
PHP中ltrim()函数的用法与实例讲解
2019/03/28 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
JQUERY操作JSON实例代码
2010/02/09 Javascript
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
用Javascript实现Windows任务管理器的代码
2012/03/27 Javascript
改变隐藏的input中value的值代码
2013/12/30 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
手写的一个兼容各种浏览器的javascript getStyle函数(获取元素的样式)
2014/06/06 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
2016/05/17 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
vue-cli的eslint相关用法
2017/09/29 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
js调用网络摄像头的方法
2020/12/05 Javascript
详解Python的单元测试
2015/04/28 Python
KMP算法精解及其Python版的代码示例
2016/06/01 Python
Python快速排序算法实例分析
2017/11/29 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
Pandas替换及部分替换(replace)实现流程详解
2020/10/12 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
日本最大的彩色隐形眼镜销售网站:CharmColor
2020/09/09 全球购物
办公室文员工作自我评价
2013/12/01 职场文书
2015年房地产销售工作总结
2015/04/20 职场文书
晚会开幕词范文
2016/03/04 职场文书
宪法宣传标语100条
2019/10/15 职场文书
Python中glob库实现文件名的匹配
2021/06/18 Python
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python
python和Appium的移动端多设备自动化测试框架
2022/04/26 Python
Android中View.post和Handler.post的关系
2022/06/05 Java/Android