爬虫逆向: 一个电影网站实战 domp4.cc
一个电影网站的详情页下载地址获取过程
背景
希望获得目标网站的电影下载地址,但发现地址是动态加载出来的,并且经过了加密过程。
任务
- 打开详情页地址: https://www.domp4.cc/html/EUY2egNNNNNg.html
- 匹配目标代码(需要逆向的内容)
- 解码,得到目标
JSON
核心代码
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|/'] }
]
}