Python实现JS解密并爬取某音漫客网站
作者:松鼠爱吃饼干 发布时间:2022-03-28 03:32:06
首先打开网站
https://www.zymk.cn/1/37988.html
打开开发者工具
选择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
尝试搜索图片元素
发现有一个js文件,打开搜索
发现这里有一个疑点,这不是html里面的字段吗,那么 “i.getPicUrl(e)” 不就是那个图片的URL的值了吗
在这里下一个断点,走你
果然,这个就那个图片URL生成的切入点,现在就是看调用栈,找到这个函数的起点,点击右侧的 ”e.init“,这里有一个setInitData函数,从名字来看,应该就是设置初始数据的地方,在这里下一个断点,进去看看
这里有一个this.imgpath,这个应该就是图片的URL值了,点击F10,再单步调式,来到了charcode函数
进去看看,这里应该就是加密函数了
这里一步步调式,不要着急,来到了这里
继续单步调式,在第二次打开这么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拼接需要使用到的
现在我们再重新看看那个加密函数,它无非就是遍历那个加密值的每个字符,获取其Unicode值,再与__cr.chapter_id进行相关运算,然后再得到的Unicode数值返回字符
现在我们可以用python仿写这个算法
接下就是平常get请求获取必要的数据了,通过正则获取元素,拼接,以下是源码
来源:https://www.cnblogs.com/hhh188764/p/13803504.html
猜你喜欢
- 【实用系列】-- 胖页面载入,加载JavaScript效果整理了一下代码,做了一些优化,算是最终版了。完全不需要对其他文件做任何修改,就是所
- 虽然现在有许多网页制作工具能让您轻松地完成工作,但如果使用HTML则可以得到更大控制权,下面介绍几个小技巧。1.使用语句来控制文字排版比用好
- 在python的使用中,有时也不得不调用一下外部程序,那么如何调用外部程序:首先,我们要启动python软件,使用的是python2.7的版
- 1、灵活运用样式 熟悉网页设计的网友就知道,调用Style的方法很多,我们可以单击鼠标右键选择Custon Style来调用Style标准,
- 啥也不说了,直接上代码吧!# encoding:utf-8import requests # 导入requests模块用于访问测试自己的ip
- swagger介绍Swagger本质上是一种用于描述使用JSON表示的RESTful API的接口描述语言。Swagger与一组开源软件工具
- 本文给出了几个表单常用的js验证函数,有检查、\等特殊字符的,有检查是否含有空格,检查是否为Email 地址,也有检查是否是小数或负数的,检
- cmake-2.8.3.tar.gzmysql-5.5.8.tar.gz一,cmake-2.8.3的安装:tar -zxf cmake-2.
- 捣鼓了一天一直报错:Error running ‘mypython': Can't run remote python in
- 1、利用php gd库的函数绘制3D扇形统计图<?phpheader("content-type","t
- 切片主要用于序列对象中,按照索引区间截取出一段索引的内容。切片的书写形式:[i : i+n : m] ;其中,i 是切片的起始索引值,为列表
- 现在大家常用的桌面操作系统有:Windows、Mac OS、ubuntu,其中Mac OS 和 ubuntu上都会自带python。这里我们
- Golang Goroutine和线程的区别 Golang,轻松学习一、Golang Goroutine?当使用者分配足够多的任务,系统能自
- return (1==1) ? "is easy" : "my god" //C#中的用法 其实,在
- 为何使用函数最大化代码的重用和最小化代码冗余流程的分解编写函数>>def语句在Python中创建一个函数是通过def关键字进行的
- Python的版本有很多,很多第三方库也有很多不同的版本,不同的版本也可能是互不兼容的,在本机运行不同的项目,可能需要不同的环境。为了不和本
- 在Python中,对列表进行排序有两种方法。一种是调用 sort() 方法,该方法没有返回值,对列表本身进行升序排序。c
- 今天看了微软JScript官方blog上去年的两篇文章: http://blogs.msdn.com/jscript/archive/200
- Python初学,定义urlConfig 接收参数,正常传递参数时,出现,多给了一个参数的错误问题,定义class的函数之后,在调用的时候出
- 最近需要各种转格式,这里对相关代码作一个记录,方便日后查询。xlsx文件转csv文件import xlrdimport csvdef xls