吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4163|回复: 26
收起左侧

[Python 转载] 记一次,python抖音无水印解析

[复制链接]
743567274 发表于 2020-11-24 00:03
不会英语、、、连变量名都是百度的、我靠的嘞~~~
想着python的正则表达式和易语言应该差不多的,但是没想到python的正则表达式那么复杂、、、
一遍百度一遍写。知道了原理之后,就开始写程序!
易语言5分钟写好、、python1小时!哈哈哈~~~~嗝

注释都很详细,可以看看注释!
思路来自精易论坛的解析源码,吾爱应该也有,没看;
友情提醒,仅供学习使用,请勿用于非法用途!与我无关、、、
话说,手机看帖子的代码的时候,好像排版不对!
截图:
b50ed95b2dd4a526d51a77ae433091a.png
[Python] 纯文本查看 复制代码
import requests,re
#requests模块用来get网页请求
#re模块用来正则
def take_video(http_):#_函数开始,一个名字叫做http_的参数
    headers = {#这里先设置一下协议头,因为需要手机的协议头来获取地址
        'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Mobile Safari/537.36'
    }
    bake_http = requests.get(http_,headers = headers,allow_redirects = False)#get用户输入的网址,提交协议头,并且把allow_redirects设置为False来禁止重定向
    regular_bake = re.findall(r'/video/(\d*)',bake_http.text,flags=re.M)#正则一下返回的文本,取出/video/后面的ID;\d*来表示0或者多个数字
    if regular_bake == None:#判断一下正则有没有成功,因为正则失败的话会返回一个None,不判断的话正则失败程序就会报错
        return '链接解析失败,失败位置:第一步'#如果没有成功,就返回失败,来提示第几步失败了
    else:
        bake_id = regular_bake[0]#成功的话就取出来正则的第一个匹配项,复制给变量ID;正则失败的话调用这个就会报错的!所以上面判断一下
    bake_http = requests.get('https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids='+ bake_id,headers = headers,allow_redirects = False)
    # 拼接一下取出来的ID,继续提交协议头和禁止重定向
    works_name = bake_http.json()['item_list'][0]['desc']#取出来返回Json格式中的作品名字,赋值给变量
    works_nickname = bake_http.json()['item_list'][0]['author']['nickname']#取出来返回Json格式中的作者名字,赋值给变量
    works_music = bake_http.json()['item_list'][0]['music']['play_url']['uri']#取出来返回Json格式中的作品音乐,赋值给变量
    if works_music == '':#这里判断一下作品的音乐是不是空白
        works_music = '原声';#如果是空白的话就代表作品用的自己录制的声音,就是原声
    works_pic = bake_http.json()['item_list'][0]['video']['cover']['url_list'][0]#取出来返回Json格式中的作品封面图片,赋值给变量
    works_video_url = str(bake_http.json()['item_list'][0]['video']['play_addr']['url_list'][0])#取出来返回Json格式中的视频URL,赋值给变量
    works_video_url = works_video_url.replace('/playwm/','/play/')#把视频URL中的/playwm/替换为/play/
    bake_http = requests.get(works_video_url,headers = headers,allow_redirects = False)#替换视频URL之后就开始Get这个网址,提交协议头,禁止重定向
    works_video_url = bake_http.text#取出来返回的文本内容
    regular_bake = re.findall(r'[a-zA-z]+://[^\s]*', bake_http.text, flags=re.M)#正则一下,取出来返回文本中的网址,[a-zA-z]+://[^\s]*来自精益编程助手
    if regular_bake == None:#同上,判断一下是否匹配失败
        return '链接解析失败,失败位置:第二步'#失败的话返回在第二步出错
    else:
        works_video_url = regular_bake[0]#成功的话就取出来第一个匹配项,就是无水印地址
    return f'作品标题:{works_name}\n作品作者:{works_nickname}\n作品图片:{works_pic}\n作品音乐:{works_music}\n作品无水印地址:{works_video_url}'
    #拼接一下取出来的各种值,拼接一下,返回

http_ = input('请输入抖音分享链接:')#程序跑起来,先运行这个
if http_.find('v.douyin.com/') == -1:#判断一下用户输入的是不是抖音链接
    print('您输入的不是抖音链接,应该是包含“v.douyin.com/”的链接形式!')#如果不是,就提示,然后结束运行、、、
else:
    http_ = take_video(http_)#如果是,就运行上面的名字叫做take_video的函数,并且把返回内容保存在http_的变量里
    print(http_)#输出http_

免费评分

参与人数 8吾爱币 +6 热心值 +8 收起 理由
泽泽yyy + 1 + 1 谢谢@Thanks!
大理宾馆 + 1 + 1 用心讨论,共获提升!
执手相看泪眼 + 1 + 1 用心讨论,共获提升!
alex0010083 + 1 + 1 谢谢@Thanks!
Quincy379 + 1 + 1 谢谢@Thanks!
血口喷人 + 1 黑科技,杠杠的
铁头赌神 + 1 我很赞同!
为之奈何? + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xmy00000 发表于 2020-11-24 11:12
写的太复杂了。有很多需要改进的地方。
正则一般都不用findall,search更有效率。正则表达式写的也很复杂。
以我写过的经验来说,一不需要限定输入的url格式,唯一id是固定;二你不确定该视频url是否在线,title是否为空,种种都应该考虑到。
还有你说易语言5分钟,py1小时,说明你不是很会py。
qq63 发表于 2020-11-24 13:38
  File "3.py", line 32
    return f'锟斤拷品锟斤拷锟斤拷:{works_name}\n锟斤拷品锟斤拷锟斤拷:{works_nick
name}\n锟斤拷品图片:{works_pic}\n锟斤拷品锟斤拷锟斤拷:{works_music}\n锟斤拷品锟
斤拷水印锟斤拷址:{works_video_url}'
                                 ^
SyntaxError: invalid syntax

32行的数据如下
return f'作品标题:{works_name}\n作品作者:{works_nickname}\n作品图片:{works_pic}\n作品音乐:{works_music}\n作品无水印地址:{works_video_url}'

请教下这个怎么办?
复制代码提示SyntaxError: Non-ASCII character '\xc4' 这个百度了下,在前面加了个# coding=UTF-8  可以解决,不过上面那问题没找到答案
qaws 发表于 2020-11-24 00:38
星空下的流星 发表于 2020-11-24 00:56
学习学习
daxztpsg 发表于 2020-11-24 00:59
谢谢楼主大气
尼柯旧梦 发表于 2020-11-24 02:11
楼主用的那个写代码的是什么工具或软件
YouthGT 发表于 2020-11-24 07:32
学习一下
弗由 发表于 2020-11-24 07:36
励志大佬
逆劫古修 发表于 2020-11-24 07:37
学习受教了,谢谢分享
dbu00956 发表于 2020-11-24 08:11
尼柯旧梦 发表于 2020-11-24 02:11
楼主用的那个写代码的是什么工具或软件

这个问题很深...
血口喷人 发表于 2020-11-24 08:15
huangxiaolin520 发表于 2020-11-24 08:08
感谢楼主 分享  学习中~~~

nice nice
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-15 22:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表