爬虫逆向: 一个电影网站实战 domp4.cc

一个电影网站的详情页下载地址获取过程
更新于: 2022-09-14 14:01:34

背景

希望获得目标网站的电影下载地址,但发现地址是动态加载出来的,并且经过了加密过程。

详情页下载地址
加密后的代码地址

任务

核心代码

import execjs
import requests
import re

res = requests.get('https://www.domp4.cc/html/EUY2egNNNNNg.html')
html = res.text
code_re = r'<script type="text/javascript" >(.*?)\n</script>'

matches = re.findall(code_re, html, re.DOTALL)
code = matches[0]
ctx = execjs.compile(open('./decode.js').read())
res = ctx.call('unpackJSON', code)

print(res)

decode.js

const { unpack } = require('unpacker')

function unpackJSON(code) {
    var result = unpack(code.replace(/\\/g, ""));
    return JSON.parse(result.slice(15, -2))
}

结果

dict = {
    'Vod': ['5643290', 'tvp', '/list/7-1.html', '7'],
    'Data': [
        { 'downurls': ['5643290.2020.HD1080p.fdab.mp4$magnet:?xt=urn:btih:dc611a32bd2a38cbdc425e1dd7da04d3b0ec7d8e&dn=[www.domp4.cc]5643290.2020.HD1080p.fdab.mp4', '5643290.2020.HD1080p.fdab.mp4$ed2k://|file|yABDC.domp4.hL[KJG0.2020.HD1080p.fdab.mp4|1047051082|c41a80796029cccd18236b9525eb35b6|/'] }
    ]
}

参考