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插入数据到列表的方法
Apr 30 Python
Python之Web框架Django项目搭建全过程
May 02 Python
Python3.4编程实现简单抓取爬虫功能示例
Sep 14 Python
Python生成短uuid的方法实例详解
May 29 Python
python 产生token及token验证的方法
Dec 26 Python
在Python 字典中一键对应多个值的实例
Feb 03 Python
python opencv图片编码为h264文件的实例
Dec 12 Python
python super函数使用方法详解
Feb 14 Python
python 中的paramiko模块简介及安装过程
Feb 29 Python
python游戏开发的五个案例分享
Mar 09 Python
python unittest单元测试的步骤分析
Aug 02 Python
关于python爬虫应用urllib库作用分析
Sep 04 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实现图片简单上传
2006/10/09 PHP
解析PHP跨站刷票的实现代码
2013/06/18 PHP
PHP获取访问设备信息的方法示例
2019/02/20 PHP
laravel 去掉index.php伪静态的操作方法
2019/10/12 PHP
JavaScript 学习笔记(十二) dom
2010/01/21 Javascript
获取dom元素那些讨厌的位置封装代码
2010/06/23 Javascript
javascript小数四舍五入多种方法实现
2012/12/23 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
浅析创建javascript对象的方法
2016/05/13 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
2017/01/03 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
2018/08/08 Javascript
vue+axios+promise实际开发用法详解
2018/10/15 Javascript
npm qs模块使用详解
2020/02/07 Javascript
基于js实现判断浏览器类型代码实例
2020/07/17 Javascript
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
详解Python中的循环语句的用法
2015/04/09 Python
Python常用小技巧总结
2015/06/01 Python
Python找出list中最常出现元素的方法
2016/06/14 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
2018/06/13 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
Python 的AES加密与解密实现
2019/07/09 Python
python科学计算之narray对象用法
2019/11/25 Python
Python字符串split及rsplit方法原理详解
2020/06/29 Python
python实现三壶谜题的示例详解
2020/11/02 Python
python tqdm实现进度条的示例代码
2020/11/10 Python
美国摩托车头盔、零件、齿轮及配件商店:Cycle Gear
2019/06/12 全球购物
英国领先的酒杯和水晶玻璃器皿制造商:Dartington Crystal
2019/06/23 全球购物
企划专员岗位职责
2013/12/09 职场文书
村委会主任先进事迹
2014/01/15 职场文书
上级检查欢迎词
2014/01/18 职场文书
超市理货员岗位职责
2014/07/04 职场文书
高中地理教学反思
2016/02/19 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
导游词之西湖雷峰塔
2019/09/18 职场文书