zoukankan      html  css  js  c++  java
  • 【西瓜视频】帮妈妈下载广场舞健身操视频

    在此仓库https://github.com/jym66/Dlink_Parse 上增加了解析url代码

    首先下载好仓库代码,修改xigua.py

    把收集到的url放到input文件中

    import requests
    import execjs
    import re
    import jsonpath
    import json
    import base64
    class xigua:
        def __init__(self, url):
            self.url = url
            if "wid_try=1" not in self.url:
                self.url = self.url + "&wid_try=1"
            self.headers = {
                "referer": self.url,
                "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36",
            }
            self.nonce = self.getNonce()
    
        def getNonce(self):
            res = requests.get(self.url, headers=self.headers)
            return res.cookies.get("__ac_nonce")
    
        def getSign(self):
            jscode = execjs.compile(open("./js/xigua.js").read())
            ctx = jscode.call("getSign", self.nonce, self.url)
            return f"__ac_nonce={self.nonce};__ac_signature={ctx};__ac_referer={self.url}"
    
        def start(self):
            self.headers.update({"cookie": self.getSign()})
            html = requests.get(self.url, headers=self.headers)
            res = re.findall("window._SSR_HYDRATED_DATA=(.*?)</script>", html.text)[0].replace("undefined", 'null')
            url = jsonpath.jsonpath(json.loads(res), "$..video_2.main_url")
            url  = str(base64.b64decode(url[0]), "utf-8")
            print(url)
            return url
    
    
    if __name__ == '__main__':
        with open("input") as f, open("out", mode="w") as f_out:
            for line in f:
                if not line:
                    break
                url = xigua(line.rstrip()).start()
                #也可用requests下载
                f_out.write(url+"
    ")
    

      

    然后把out里的地址丢到电驴里下载,然后把文件名改成mp4后缀即可。

    文件管理器的地址栏cmd回车,输入下面的命令批量改后缀

    ren *.htm *.mp4
    

      

    转载注明出处 一支小白 - 博客园http://www.cnblogs.com/startnow/ - 联系:tungshuaishuai@sina.com
  • 相关阅读:
    leetcode刷题笔记五十八 最后一个单词的长度
    leetcode刷题笔记五十六和五十七 合并区间与插入区间
    linux根据端口号,或进程名获取进程pid
    linux系统简单配置——centos7
    日常知识点记录
    实用代码-获取某一个对象中的信息
    java获取svn中的数据
    idea快捷键整理,以及eclipse快捷键对比,持续更新中
    ajax发送同步请求
    基于 pygame 设计贪吃蛇游戏
  • 原文地址:https://www.cnblogs.com/startnow/p/15370547.html
Copyright © 2011-2022 走看看