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解析xml模块封装代码
Feb 07 Python
python使用append合并两个数组的方法
Apr 28 Python
分析用Python脚本关闭文件操作的机制
Jun 28 Python
Django中URLconf和include()的协同工作方法
Jul 20 Python
python 读取摄像头数据并保存的实例
Aug 03 Python
pandas数据集的端到端处理
Feb 18 Python
Python中asyncio模块的深入讲解
Jun 10 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
Jul 19 Python
浅谈Python_Openpyxl使用(最全总结)
Sep 05 Python
python学习将数据写入文件并保存方法
Jun 07 Python
Python 远程开关机的方法
Nov 18 Python
用 Python 元类的特性实现 ORM 框架
May 19 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
div li的多行多列 无刷新分页示例代码
2013/10/16 PHP
PHP6连接SQLServer2005的三部曲
2016/04/15 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
使用jQuery模板来展现json数据的代码
2010/10/22 Javascript
JS冒泡事件的快速解决方法
2013/12/16 Javascript
JavaScript实现算术平方根算法-代码超简单
2015/09/11 Javascript
JQuery标签页效果实例详解
2015/12/24 Javascript
js实现拖拽功能
2017/03/01 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
JavaScript监听手机物理返回键的两种解决方法
2017/08/14 Javascript
基于 D3.js 绘制动态进度条的实例详解
2018/02/26 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
[59:48]DOTA2-DPC中国联赛 正赛 VG vs Magma BO3 第一场 1月26日
2021/03/11 DOTA
python连接mysql实例分享
2016/10/09 Python
python微元法计算函数曲线长度的方法
2018/11/08 Python
html5图片上传预览示例分享
2014/04/14 HTML / CSS
小米乌克兰网上商店:Xiaomi.UA
2019/10/29 全球购物
腾讯技术类校园招聘笔试试题
2014/05/06 面试题
公司员工的自我评价范例
2013/11/01 职场文书
幼儿园中秋节活动反思
2014/02/16 职场文书
中央空调节能方案
2014/06/15 职场文书
2014年电厂工作总结
2014/12/04 职场文书
催款通知书范文
2015/04/17 职场文书
和领导吃饭祝酒词
2015/08/11 职场文书
高一地理教学工作总结
2015/08/12 职场文书
2019最新激励员工口号大全!
2019/06/28 职场文书
导游词之杭州西湖
2019/09/19 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
压缩Redis里的字符串大对象操作
2021/06/23 Redis
Java8中接口的新特性使用指南
2021/11/01 Java/Android
在容器中使用nginx搭建上传下载服务器
2022/05/11 Servers