Python 爬虫进阶必备 | 某新闻网正文图片 data-src 解密逻辑分析

共 1434字,需浏览 3分钟

 ·

2022-11-29 14:58

点击上方“咸鱼学Python”,选择“加为星标

第一时间关注Python技术干货!

图源:网络

今日网站

aHR0cHM6Ly93d3cuc29odS5jb20vYS82MTA5ODU2NDZfMTIxMzMzNzQz

抓包分析

像新闻站点的反爬一般都比较简单,可能就是加个签,对爬虫相对友好,毕竟为了自来水的流量也不能整一些花里胡哨的东西

打开目标站点,通过请求可以看到 response 中是由新闻内容的

但是新闻里的图片都是加密的,没办法直接看到源链接

加密定位与分析

可以看到,所以的图片都是 src 属性的内容

所以网页在加载的时候需要操作图片的src属性,所以我们搜索的重点就是他

直接搜索 src 可以得到下面的内容

进入 js 继续搜索,找到下面的位置

可以看到这里获取了 src 的值,然后这个属性进行了一些操作,这样的操作就很可疑了

打上断点再刷新

这里的 o 就是加密图片的值

然后运行到 xx.setAttribute 的位置的时候,就已经变成明文的图片链接了

所以关键的逻辑就是 var s = e(o,"www.xxx66.com") 这一行

我们重新刷新,然后单步到 e 的逻辑当中

单步进去之后代码就很简洁了,具体的操作就是一个 AES 解密的操作

我们找到AES 三元素就可以直接用自己的代码复现出来了

首先是 key , 这里的 key 就是 e 方法传入的参数2,"www.sox66.com"

因为使用的是 ECB 模式所以不需要 IV,填充方式为 pkcs7

有了上面的内容,就可以直接复现了

代码示例

import base64
from Crypto.Cipher import AES


def decrypt_img_data(data):
    html = base64.b64decode(data)
    key = b'www.xxx.xxx6666'
    aes = AES.new(key=key, mode=AES.MODE_ECB)
    decrypt_data = aes.decrypt(html).decode()
    print(decrypt_data)
    return decrypt_data


if __name__ == '__main__':
    decrypt_img_data(
        "ZqqdApMA/yaR/foHptBuz+jwr47D8luFD15aBAmwHoobnaVtAoRWQQuxZXM7etE5f2ZbwA1UQPJ05kM4QYMzT9NbmrugZ7Ix0rwjLtstEHg=")

运行结果

End.

以上就是全部的内容了,咱们下次再会~

备注【咸鱼666】,入群交流

我是没有更新就在摸鱼的咸鱼

收到请回复~

我们下次再见。

咸鱼:来都来了,再不点赞就不礼貌了!

浏览 110
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报