爬取糖豆视频

爬虫案例积累,以爬取糖豆视频为例:

爬取视频类型的数据一般步骤:

1.点击media,刷新,播放一个视频,会刷新一个包,点击发现是播放视频的包,

2.复制这个包url中的关键字,在搜索框中进行搜索,看有哪些包有关键字。

3.搜索后找到有play_url的包

4.看这个包的url,观察有什么规律

5.以糖豆视频为例,发现这个包的url有参数vid

6.查找参数在哪个位置

7.在xhr 动态加载中找到包,发现其中json数据中有vid的数据。

8.访问xhr 中的包获取vid数据,利用获取到的vid数据拼凑含有play_url的包的链接,访问这个链接,获取play_url

9.多页爬取,观察xhr 包的链接有什么规律,发现参数为页数,即可多页爬取

注意:访问视频play_url时,必须headers中加上防盗链,否则只会爬取五秒中视频

总结:这一案例与爬取好看视频最大的区别在于,它的play_url并不在xhr下的包中,因此找到比较困难。我在爬三个视频后就被禁止访问了。

代码呈现:9854ee7dae014e0192a349598f625e5a.png

代码详情:

import requests
import os
filename = '糖豆视频//'
if not os.path.exists(filename):
    os.mkdir(filename)

def down_load(page):
    for page in range(page):
        page = page+2
        url = f'https://api-h5.tangdou.com/mtangdou/home/feed?page={page}&num=32&uuid=1682063965069_81146'
        headers = {'User-Agent':
                                       'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
                                   }
        response = requests.get(url=url,headers=headers)
        for index in response.json()['data']:
            video_id = index['vid']
            title = index['title']
            print(video_id,title)
            link = f'https://api-h5.tangdou.com/mtangdou/video/play?vid={video_id}&uuid='
            json_data = requests.get(url=link,headers=headers).json()
            play_url = json_data['data']['play_url']
            print(play_url)
            headers1 = {'User-Agent':
                           'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36',
                        'Referer':
                            'https: // www.tangdou.com /'
                       }
            video_content = requests.get(url=play_url,headers=headers1).content
            with open(filename+title+'.mp4',mode='wb') as f:
                f.write(video_content)

结果展现:43a4710074234f20a22666cee0e5c865.png

被禁止访问了:f9fdbf60a2f447568cb246cc320eb485.png 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/314732.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— 代码下载(3)

接前一篇文章:玩转贝启科技BQ3588C开源鸿蒙系统开发板 —— 代码下载(2) 本文主要参考: BQ3588C_代码下载 3. 编译构建 (1)执行prebuilts 在源码根目录下执行脚本,安装编译器及二进制工具。 …

PyTorch中常用的工具(3)TensorBoard

文章目录 前言3 可视化工具3.1 TensorBoard 前言 在训练神经网络的过程中需要用到很多的工具,最重要的是数据处理、可视化和GPU加速。本章主要介绍PyTorch在这些方面常用的工具模块,合理使用这些工具可以极大地提高编程效率。 由于内容较多&#xff0c…

UDS诊断(ISO14229-1) 3E服务

文章目录 功能简介应用场景非3E服务报文能维持非默认会话吗诊断仪发送了一帧 $3E报文后,又发送其他诊断请求会刷新 S3 Client 计数器吗请求和响应1、请求2、子功能3、肯定响应4、否定响应 报文示例UDS中常用 NRC 功能简介 3E服务,即 TesterPresent&…

CSDN质量分查询

查看了2023博客之星TOP 20 榜单公布 才知道有质量评分,可是内容管理有没有质量分数,也可能是我没找到。建议开发者可以在内容管理的每个文章处加一个文章质量分数,帮助创作者改进文章质量 CSDN质量分查询https://www.csdn.net/qc 也欢迎各…

热烈欢迎马来西亚客户来我司进行技术交流-安科瑞 蒋静

2023年12月5日下午3点,马来西来客户总包公司LAU KIAN HUA先生同他们的技术顾问Yayan Yogo Santoso到安科瑞考察参观展厅和智能化生产车间并进行技术交流。12月5日下午刚到就马不停蹄地参观了我们的展厅和生产车间。 在仪表生产车间里,公司负责人沈原谅沈…

pendulum,一个超酷的 Python 库!

更多Python学习内容:ipengtao.com 大家好,今天为大家分享一个超酷的 Python 库 - pendulum。 Github地址:https://github.com/sdispater/pendulum 日期和时间处理在许多应用程序中都是常见的任务,然而,Python标准库中的…

LAYABOX:2024新年寄语

2024新年寄语 过去的一年,尽管许多行业面临严峻挑战和发展压力,小游戏领域却逆势上扬,年产值首次突破400亿元大关,众多优质小游戏企业收获颇丰。 对此,祝福大家,2024一定更好! 过去的一年&#…

Windows CPU部署llama2量化模型并实现API接口

目录 模型部署本地运行llama2使用fastapi实现API接口常用git仓库 模型部署 从huggingface下载模型 https://huggingface.co/ 放在本地文件夹,如下 本地运行llama2 from ctransformers import AutoModelForCausalLMllm AutoModelForCausalLM.from_pretrained(&q…

C语言之scanf浅析

前言&#xff1a; 当有了变量&#xff0c;我们需要给变量输入值就可以使用scanf函数&#xff0c;如果需要将变量的值输出在屏幕上的时候可以使用printf函数&#xff0c;如&#xff1a; #include <stdio.h> int main() {int score 0;printf("请输⼊成绩:");sc…

YOLOv8训练损失、mAP画图功能 | 支持多结果对比,多结果绘在一个图片(科研必备)

一、本文介绍 本文给大家带来的是YOLOv8系列的绘图功能&#xff0c;我将向大家介绍YOLO系列的绘图功能。我们在进行实验时&#xff0c;经常需要比较多个结果&#xff0c;针对这一问题&#xff0c;我写了点代码来解决这个问题&#xff0c;它可以根据训练结果绘制损失(loss)和mA…

Docker support for NVIDIA GPU Accelerated Computing on WSL 2

Docker support for NVIDIA GPU Accelerated Computing on WSL 2 0. 背景1. 安装 Docker Desktop2. 配置 Docker Desktop3. WLS Ubuntu 配置4. 安装 Docker-ce5. 安装 NVIDIA Container Toolkit6. 配置 Docker7. 运行一个 Sample Workload 0. 背景 今天尝试一下 NVIDIA GPU 在…

启封涂料行业ERP需求分析和方案分享

涂料制造业是一个庞大而繁荣的行业 它广泛用于建筑、汽车、电子、基础设施和消费品。涂料行业生产不同的涂料&#xff0c;如装饰涂料、工业涂料、汽车涂料和防护涂料。除此之外&#xff0c;对涂料出口的需求不断增长&#xff0c;这增加了增长和扩张的机会。近年来&#xff0c;…