日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1024程序员节 - 分享一个抖音视频下载程序

發布時間:2024/3/26 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1024程序员节 - 分享一个抖音视频下载程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在網上調用別人的接口來實現的功能?

import requests import execjs# 生成參數s def generateStr(a):js = '''test = function(a) {var c = function() {for (var d = 0,f = new Array(256), g = 0; 256 != g; ++g) {d = g,d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,d = 1 & d ? -306674912 ^ d >>> 1 : d >>> 1,f[g] = d}return "undefined" != typeof Int32Array ? new Int32Array(f) : f} (),b = function(g) {for (var j, k, h = -1,f = 0,d = g.length; f < d;) {j = g.charCodeAt(f++),j < 128 ? h = h >>> 8 ^ c[255 & (h ^ j)] : j < 2048 ? (h = h >>> 8 ^ c[255 & (h ^ (192 | j >> 6 & 31))], h = h >>> 8 ^ c[255 & (h ^ (128 | 63 & j))]) : j >= 55296 && j < 57344 ? (j = (1023 & j) + 64, k = 1023 & g.charCodeAt(f++), h = h >>> 8 ^ c[255 & (h ^ (240 | j >> 8 & 7))], h = h >>> 8 ^ c[255 & (h ^ (128 | j >> 2 & 63))], h = h >>> 8 ^ c[255 & (h ^ (128 | k >> 6 & 15 | (3 & j) << 4))], h = h >>> 8 ^ c[255 & (h ^ (128 | 63 & k))]) : (h = h >>> 8 ^ c[255 & (h ^ (224 | j >> 12 & 15))], h = h >>> 8 ^ c[255 & (h ^ (128 | j >> 6 & 63))], h = h >>> 8 ^ c[255 & (h ^ (128 | 63 & j))])}return h ^ -1};return b(a) >>> 0}'''ctx = execjs.compile(js)return ctx.call('test', a)def run():# 第一次訪問的url(獲取cookie)base_url = 'http://douyin.iiilab.com'# 解析urlurl = 'http://service0.iiilab.com/video/web/douyin'# link = 'http://v.douyin.com/d3pqo9/'# 抖音需要去水印的鏈接link = input('請輸入鏈接\n')# r是隨機數r = execjs.eval('Math.random().toString(10).substring(2)')# s是根據隨機數r一定的規則生成的(太長不想分析, 直接用execjs這個庫直接跑js代碼)s = generateStr('{}@{}'.format(link, r))headers = {'Host': 'douyin.iiilab.com','User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3514.0 Safari/537.36','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8','Accept': 'application/json, text/javascript, */*; q=0.01','Pragma': 'no-cache','Cache-Control': 'no-cache','Accept-Encoding': 'gzip,deflate','Accept-Language': 'zh-CN,zh;q=0.9'}data = {'link': link,'r': r,'s': s}# 使用requests的session保留cookiessess = requests.Session()# 要加入headers,不然報錯sess.headers.update(headers)# 模擬正常訪問網頁獲取cookiesres = sess.get(base_url)headers = {'Host': 'service0.iiilab.com','Origin': 'http://douyin.iiilab.com','Referer': 'http://douyin.iiilab.com/','User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3514.0 Safari/537.36','Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8','Accept': 'application/json, text/javascript, */*; q=0.01','Pragma': 'no-cache','Cache-Control': 'no-cache','Accept-Encoding': 'gzip,deflate','Accept-Language': 'zh-CN,zh;q=0.9'}sess.headers.update(headers)# 獲取返回的數據res = sess.post(url, data=data, headers=headers).json()if res['retCode'] == 200:print(res)# 封面cover = res['data']['cover']# 標題title = res['data']['text']# 去水印后的視頻video = res['data']['video']else:print(res)if __name__ == '__main__':run()

?

總結

以上是生活随笔為你收集整理的1024程序员节 - 分享一个抖音视频下载程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。