当前位置: 首页 > news >正文

基于Python来爬取某音动态壁纸,桌面更香了!

至于小伙伴们想要这个封图,我也没有。

不过继续带来一波靓丽壁纸,而且是动态的,我的桌面壁纸又换了:

每天换着花样欣赏一波波动态壁纸

桌面立刻拥有了高颜值,简直跟刷美女短视频一样啊。

对的,这些动态壁纸就是短视频!

别问我怎么知道的,

因为上个月才分享过抓取某音短视频数据。

启动mitmweb, 下图的share_url就是我桌面上那个动态壁纸,在浏览器中打开就是短视频页面

所谓的动态壁纸不过是用户上传的好看的短视频!某音的产品MM为你精心挑选

获取下载链接

这些壁纸(短视频)的MP4地址怎么获取呢?

很简单,都不用python去模拟请求了。

下载某音windows版本进行安装,

命令行启动mitmweb,点击下图红框内的五角星进入动态壁纸页面

mitmproxy会出现https://www.douyin.com/aweme/v1/web/wallpaper/开头的链接,选好它然后点击“Download”按钮,会下载一个“content.data”的文件,里面包含动态壁纸的MP4下载地址!

我们可以用python来处理它,然后去重,放入列表中

import jsonurl_list = []url_dict = {}with open('content.data', 'r',encoding='utf-8') as f:    x = json.load(f)    for i in x['aweme_list']:        #去掉特殊的        if 'anchor_info' in i:            continue        else:            for i in i['video']['bit_rate']:                #url_list有3个url,但视频内容相同,取最后一个                url = i['play_addr']['url_list'][2]                #video_id相同的是同一个视频,取出video_id,用字典去重                a = url.split('video_id=')[1].split('&line=')[0]                print(a)                url_dict[a] = url#去重后的视频添加到列表中for k,v in url_dict.items():    url_list.append(v)print(len(url_list))print(url_list)

输出得到前18个壁纸视频的下载链接,而且顺序跟某音上看到的一模一样

['https://www.douyin.com/aweme/v1/play/?video_id=v0d00fg10000cagm35rc77u3k4nb0430&line=0&file_id=fec3f8eeb45e48a18f30dfd96922f659&sign=4450c5609c69d0a5c1100e6801cf25dd&is_play_url=1&source=PackSourceEnum_AWEME_DETAIL', ...]

下载壁纸短视频

有链接就简单了,继续我们的套路,参考用Python实现实时显示视频下载进度

import osimport requestsfrom tqdm import tqdmVIDEO_PATH = r'videos'def download(url,fname):    # 用流stream的方式获取url的数据    resp = requests.get(url, stream=True,verify=False)    total = int(resp.headers.get('content-length', 0))    with open(fname, 'wb') as file, tqdm(        desc=fname,        total=total,        unit='iB',        unit_scale=True,        unit_divisor=1024,    ) as bar:        for data in resp.iter_content(chunk_size=1024):            size = file.write(data)            bar.update(size)if __name__ == "__main__":    url_list = ['https://www.douyin.com/aweme/v1/play/?video_id=v0d00fg10000cagm35rc77u3k4nb0430&line=0&file_id=fec3f8eeb45e48a18f30dfd96922f659&sign=4450c5609c69d0a5c1100e6801cf25dd&is_play_url=1&source=PackSourceEnum_AWEME_DETAIL', 'https://www.douyin.com/aweme/v1/play/?video_id=v0200fg10000c9glhfrc77u0fbj4iqs0&line=0&file_id=e330ce20f5f245e9b1923f8cd26b6ef9&sign=0ee1a91a52645237a4d1382c22a0b540&is_play_url=1&source=PackSourceEnum_AWEME_DETAIL', ...]    for url in url_list:        video_name = url[47:67]        video_full_path = os.path.join(VIDEO_PATH,"%s.mp4" % video_name)        download(url, video_full_path)

666,动态壁纸色香味,简直不要太飒

http://www.lryc.cn/news/5970.html

相关文章:

  • [数据库]表的约束
  • VisualGDB 5.6R9 FOR WINDOWS
  • Yolov8的多目标跟踪实现
  • 28--Django-后端开发-drf之自定义全局异常、接口文档生成以及三大认证源码分析
  • 【MyBatis】动态SQL
  • LeetCode(剑指offer) Day1
  • 1、MyBatis框架——JDBC代码回顾与分析、lombok插件的安装与使用
  • 笔记-GPS设备定位方式
  • 2023秋招携程SRE算法岗面试经验分享
  • 4.9 内部类
  • ncnn模型精度验证
  • IB-PYP幼儿十大素质培养目标
  • 02.13:监督学习中的分类问题
  • leetcode刷题 | 关于二叉树的题型总结3
  • 设计模式-结构型
  • 【新】华为OD机试 - 预订酒店(Python)| 运气好 会考到原题
  • 【编程基础之Python】4、安装Python开发工具
  • 5. 最长回文子串
  • 内网渗透(二十四)之Windows协议认证和密码抓取-Mimikatz读取sam和lsass获取密码
  • 【THREE.JS】网页中的炫酷3D
  • Go语言之 下载安装go以及vscode配置go环境
  • RBAC权限 API声明四种kubernetes对象
  • CDGP仿真选择题4
  • 典型相关分析与R语言实现
  • 【蓝桥集训】第一天——前缀和
  • 2022-03-19青少年软件编程(C语言)等级考试试卷(六级)解析
  • [JavaScript 刷题] 特殊数组的特征值, leetcode 1608
  • 各种素材网站大全【全部倾倒,福利倒计时-JS,HTML,游戏素材,UI,图片素材等
  • 影片自由,丝滑流畅,Docker容器基于WebDav协议通过Alist挂载(百度网盘/阿里云盘)Python3.10接入
  • 【新】华为OD机试 - 数组的中心位置(Python)| 运气好,这就是原题