爬取糖豆视频

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

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

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.mfbz.cn/a/283246.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp的css样式图片大小截图展示

目录 截取图片前截取图片后第一种方式&#xff1a;代码第二种方式&#xff1a;代码最后 截取图片前 截取图片后 第一种方式&#xff1a;代码 <view class"swiper-box-img"><image class"swiper-box-img-img" :src"item.file_path" mod…

【LLM】人工智能应用构建的十大预训练NLP语言模型

在人工智能领域&#xff0c;自然语言处理&#xff08;NLP&#xff09;被广泛认为是阅读、破译、理解和理解人类语言的最重要工具。有了NLP&#xff0c;机器可以令人印象深刻地模仿人类的智力和能力&#xff0c;从文本预测到情感分析再到语音识别。 什么是自然语言处理&#xf…

uni-app引入vant表单(附源码)

新建项目 下载安装vant npm i vant main.js引入 import { Form } from vant; import { Field } from vant;Vue.use(Form); Vue.use(Field);代码引入 <van-form submit"onSubmit"><van-fieldclass"rePwd"v-model"username"name"请…

AI电商时代开始:阿里能否反杀拼多多

“AI电商时代刚刚开始&#xff0c;对谁都是机会&#xff0c;也是挑战。” 针对阿里员工对于拼多多财报和电商等的讨论&#xff0c;马云在阿里内网罕见地参与了谈论并发言。 阿里巴巴一向雷厉风行&#xff0c;已打响了AI电商的“第一炮”。 根据《晚点LatePost》报道&#xff…

【Linux基础】8. 网络工具

文章目录 【 1. 查询网络服务和端口 】【 2. 网络路由 】【 3. 镜像下载 】【 4. ftp sftp lftp ssh】【 5. 网络复制 】 【 1. 查询网络服务和端口 】 全称作用netstat&#xff08;network statistics&#xff09;网络统计显示各种网络相关信息&#xff0c;如网络连接&#x…

ssm 宿舍管理系统

MD5加密&#x1f512; - SSM框架&#x1f3a8; - Layui框架&#x1f384;#### 实现功能 - [x] 管理员的登录与登出 - [x] 管理员,班级,学生,宿舍&#xff0c;卫生&#xff0c;访客各模块增删改查 - [x] 个别模块关联查询 - [x] 各个模块数据导出Excel

从零开始的 dbt 入门教程 (dbt-core 基础篇)

最近一直在处理数据分析和数据建模的事情&#xff0c;所以接触了 dbt 等数据分析的工具&#xff0c;国内目前对于 dbt 比较详细的资料不多&#xff0c;所以打算写四道五篇 dbt 相关的文章&#xff0c;本文属于 dbt 系列的第一篇&#xff0c;本篇主要阐述 dbt 一些基本概念&…

【python报错】UserWarning: train_labels has been renamed targets

UserWarning: train_labels has been renamed targetswarnings.warn(“train_labels has been renamed targets”) 这是一条 Python 警告信息&#xff0c;它表示 train_labels 这个变量已经被重命名为 targets&#xff0c;在将来的版本中可能会移除 train_labels。因此&#x…

Linux安装Oracle调用dbca无响应和密码问题

Linux服务器下调用dbca无响应&#xff0c;或弹出如下提示&#xff1a; 则需要在Linux命令行窗口&#xff0c;输入如下命令即可 export DISPLAYip:0.0 注意&#xff1a;该ip应该为可显示图形桌面的机器ip地址。 该桌面需要已经安装了Xmanager-Passive&#xff08;比如 Xmanag…

MIT线性代数笔记-第34讲-左右逆,伪逆

目录 34.左右逆&#xff0c;伪逆左右逆伪逆 打赏 34.左右逆&#xff0c;伪逆 左右逆 之前讲到的逆都是针对可逆方阵而言的&#xff0c;对于长方矩阵&#xff0c;实际上也有广义的逆&#xff0c;那就是左逆和右逆 左逆 当矩阵列满秩&#xff0c;即 r n r n rn时&#xff0c;…

x-cmd-pkg | deno - 更快更强的 JS 和 TS 运行时

目录 简介首次用户技术特点进一步阅读 简介 Deno 是一个基于 V8 引擎和 Rust 语言构建的 JavaScript 和 TypeScript 运行时环境&#xff0c;于 2018 年由 Ryan Dahl 在演讲中宣布&#xff0c;并在 2020 年正式发布 1.0&#xff0c;目标是提供一个高效且安全的脚本环境。 安全…

PostgreSQL16.1(Windows版本)

1、卸载原有的PostgreSQL &#xfeff; &#xfeff; 点击Next即可。 &#xfeff;&#xfeff; 点击OK即可。 卸载完成。 2、安装 &#xff08;1&#xff09; 前两部直接Next&#xff0c;第二部可以换成自己想要安装的路径。 &#xff08;2&#xff09; 直接点击Next。…

记矩阵基础概念

转自up&#xff1a;Naruto_Qcsdn&#xff1a;三维空间几何变换矩阵 先贴个站里分享的基础概念。 learn form 肥猫同学VFX b站&#xff1a;会用transform就会用矩阵 移动 旋转 缩放 1.transofrm ——输出变化矩阵 可以移动transform查看变化去理解 位移 缩放 旋转 由此—…

Flink学习-时间和窗口

在流数据处理应用中&#xff0c;一个很重要、也很常见的操作就是窗口计算。所谓的“窗口”&#xff0c;一 般就是划定的一段时间范围&#xff0c;也就是“时间窗”&#xff1b;对在这范围内的数据进行处理&#xff0c;就是所谓的 窗口计算。所以窗口和时间往往是分不开的。 时…

【js】js解析Token:

一、效果&#xff1a; 二、实现&#xff1a; export function getTokenObject(token) {//通过split()方法将token转为字符串数组,数组中的第二个字符进行解析return token ? JSON.parse(decodeURIComponent(escape(window.atob(token.split(".")[1].replace(/-/g &…

2023年亲身经历总结 | 记录从大学到现在历程

现在是2023年12月31日&#xff0c;回想2023年&#xff0c;是充满挑战的一年&#xff0c;也是成就斐然的一年。回首过去&#xff0c;仿佛一幅画卷展开&#xff0c;每一笔每一刻都镌刻着成长的印记。 以下文章从大学经历说起&#xff0c;到现在发展情况&#xff0c;希望我的经历对…

大数据应用领域:数据驱动一切

大数据出现的时间只有十几年&#xff0c;被人们广泛接受并应用只有几年的时间&#xff0c;但就是这短短几年的时间&#xff0c;大数据呈现出爆炸式增长的态势。在各个领域&#xff0c;大数据的身影几乎无处不在。今天我们通过一些大数据典型的应用场景分析&#xff0c;一起来看…

ALSA学习(5)——设备中的alsa

参考博客&#xff1a; https://blog.csdn.net/DroidPhone/article/details/7165482 &#xff08;一下内容基本是原博主的博客转载&#xff09; 文章目录 一、ASOC的由来二、硬件架构三、软件架构四、数据结构五、内核对ASoC的改进 一、ASOC的由来 ASoC–ALSA System on Chip …

Vue-Setup

一、setup概述 小小提示&#xff1a;vue3中可以写多个根标签。 Person.vue中内容 <template><div class"person"><h2>姓名&#xff1a;{{name}}</h2><h2>年龄&#xff1a;{{age}}</h2><!--定义了一个事件&#xff0c;点击这…

【网络面试(5)】收发数据及断开服务器(四次挥手)

前面了解到服务器和客户端在创建套接字&#xff0c;建立连接后&#xff0c;就可以进入到下一步&#xff0c;双发可以互相发送和接收数据&#xff0c;本篇博客就来学习一下这个过程。  我们印象里&#xff0c;发送数据应该是我们在浏览器输入网址&#xff0c;敲击回车的一瞬间&…
最新文章