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 相关文章推荐
在Gnumeric下使用Python脚本操作表格的教程
Apr 14 Python
python 网络爬虫初级实现代码
Feb 27 Python
Python虚拟环境virtualenv的安装与使用详解
May 28 Python
Python实现字符串与数组相互转换功能示例
Sep 22 Python
pytorch 数据集图片显示方法
Jul 26 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
Sep 27 Python
Python设计模式之代理模式实例详解
Jan 19 Python
python爬虫租房信息在地图上显示的方法
May 13 Python
python 一个figure上显示多个图像的实例
Jul 08 Python
python使用writerows写csv文件产生多余空行的处理方法
Aug 01 Python
Python中pass的作用与使用教程
Nov 13 Python
python 自动刷新网页的两种方法
Apr 20 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 FTP类的详解
2013/06/13 PHP
php通过ajax实现双击table修改内容
2014/04/28 PHP
php实现中文转数字
2016/02/18 PHP
PHPMailer使用QQ邮箱实现邮件发送功能
2017/08/18 PHP
jQuery中的bind绑定事件与文本框改变事件的临时解决方法
2010/08/13 Javascript
浅析JavaScript中的同名标识符优先级
2013/12/06 Javascript
详解JS函数重载
2014/12/04 Javascript
js实现将选中值累加到文本框的方法
2015/08/12 Javascript
java必学必会之static关键字
2015/12/03 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
Web程序员必备的7个JavaScript函数
2016/06/14 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
详解vue-router基本使用
2017/04/18 Javascript
jQuery+ajax实现局部刷新的两种方法
2017/06/08 jQuery
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
Node.js的进程管理的深入理解
2019/01/09 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
如何在微信小程序中使用骨架屏的步骤
2020/06/12 Javascript
[01:01:13]2018DOTA2亚洲邀请赛 4.5 淘汰赛 Mineski vs VG 第三场
2018/04/06 DOTA
打开电脑上的QQ的python代码
2013/02/10 Python
常用python编程模板汇总
2016/02/12 Python
Python多进程写入同一文件的方法
2019/01/14 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
Tensorflow 模型转换 .pb convert to .lite实例
2020/02/12 Python
泰国网上购物:Shopee泰国
2018/09/14 全球购物
Shell如何接收变量输入
2016/08/06 面试题
高级电工工作职责
2013/11/21 职场文书
采购部岗位职责
2013/11/24 职场文书
检察官就职演讲稿
2014/01/13 职场文书
小学竞选班干部演讲稿
2014/08/20 职场文书
质量整改通知单
2015/04/21 职场文书
电影小兵张嘎观后感
2015/06/03 职场文书
三年级作文之小小梦想
2019/12/06 职场文书
浅析Django接口版本控制
2021/06/26 Python