1 min read

python3+docker获取百度视频真实地址

#脚本说明

使用DOCKER的无头浏览器访问页面内容,grep正则匹配视频真实地址
需要安装docker

#源码

from flask import Flask, request, jsonify
import subprocess

app = Flask(__name__)

@app.route('/', methods=['GET'])
def get_bd_url():
    bd_url = request.args.get('bd_url')
    if bd_url:
        try:
            command = f"docker container run --rm zenika/alpine-chrome --no-sandbox --dump-dom '{bd_url}' | grep -oP 'playurl\":\"\\K[^\"]*'"
            result = subprocess.check_output(command, shell=True, text=True)
            #把result中的\/改成/
            result = result.replace('\/','/')
            return jsonify({'result': result.strip()})
        except subprocess.CalledProcessError as e:
            return jsonify({'error': str(e)}), 500
    else:
        return "404 Not Found", 404

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=9999)

#使用方法

http://127.0.0.1:9999/bd_url=https://mr.baidu.com/r/1v1XMPOz33i?f=cp&rs=71727287&ruk=evyGqF9PA8_nKaiZkgB_Vg&u=c58d88a407697b76&sid_for_share=99125_3