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

作者:松鼠爱吃饼干 时间:2022-03-28 03:32:06 

首先打开网站

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解密并爬取某音漫客网站 

来源:https://www.cnblogs.com/hhh188764/p/13803504.html

标签:Python,JS,解密,爬取
0
投稿

猜你喜欢

  • Pytorch 如何实现常用正则化

    2022-11-02 22:15:14
  • ASP.NET(AJAX+JSON)实现对象调用

    2023-07-19 12:29:33
  • Python selenium 自动化脚本打包成一个exe文件(推荐)

    2023-01-13 02:37:39
  • PHP rsa加密解密算法原理解析

    2023-08-18 17:23:38
  • 如何使用Python快速生成gif图

    2021-08-24 18:38:43
  • python中pandas库中DataFrame对行和列的操作使用方法示例

    2022-07-05 03:09:00
  • Python selenium文件上传下载功能代码实例

    2021-04-24 07:21:28
  • Python3如何使用多线程升程序运行速度

    2023-02-06 05:11:42
  • Python求正态分布曲线下面积实例

    2021-01-28 18:20:07
  • Python利用docx模块实现快速操作word文件

    2022-06-19 07:18:45
  • Python修改Excel数据的实例代码

    2021-05-24 12:40:29
  • Python中的exec、eval使用实例

    2022-07-05 21:01:41
  • python变量不能以数字打头详解

    2022-06-30 15:33:48
  • 在Python中实现字典反转案例

    2022-12-17 02:05:46
  • 技巧和诀窍:用Silverlight支持全屏模式

    2007-09-23 12:37:00
  • pandas 对日期类型数据的处理方法详解

    2021-12-02 04:43:56
  • python统计RGB图片某像素的个数案例

    2021-09-30 11:25:56
  • Python初学者常见错误详解

    2023-09-09 10:16:46
  • MySQL数据库性能优化之索引优化

    2012-05-08 07:16:37
  • 解决Django后台ManyToManyField显示成Object的问题

    2021-01-06 09:58:21
  • asp之家 网络编程 m.aspxhome.com