Python爬虫掌握-----4实战(爬取视频)

我们使用爬虫时难免会遇到爬取视频的情况,其实爬取图片视频,内容都是一样的。这里以b站视频为例。

一、开始

1.找到url,请求url

防盗链,需要写在UA伪装中

正常的三步:

1.url

2.requests请求

3.UA伪装

import requestsif __name__ == '__main__':head = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0"
,"Referer":"https://www.bilibili.com/"}url = "https://www.bilibili.com/video/BV17H4y1A7md/?t=9&spm_id_from=333.1007.tianma.2-1-4.click&vd_source=37cc0b6d243b986a7d9f55081d429fcb"requests.get(url,headers=head)pass

2.找到所需数据地址,获取它。

b站的视频有点特殊,视频和声频是分开的,我们需要分别爬取,我们通过正常的爬取是无法爬取到b站视频的直接通过视频地址是爬取不到的。所以我们需要分别找到视频和音频的地址。

在head里找到这个window__playinfo__获取它,从中提取视频和音频的url请求获取即可:保存到文件中

import requests
import json
from lxml import etreeif __name__ == '__main__':head = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0", "Referer": "https://www.bilibili.com/"}url = "https://www.bilibili.com/video/BV17H4y1A7md/?t=9&spm_id_from=333.1007.tianma.2-1-4.click&vd_source=37cc0b6d243b986a7d9f55081d429fcb"response = requests.get(url, headers=head)res_text = response.text# 数据解析tree = etree.HTML(res_text)# 去掉开头的window.__playinfo__=base_info = "".join(tree.xpath("/html/head/script[4]/text()"))[20:]info_dict = json.loads(base_info)print(base_info)video_url = info_dict["data"]["dash"]['video'][0]["baseUrl"]audio_url = info_dict["data"]["dash"]['audio'][0]["baseUrl"]video_content = requests.get(video_url,head).contentaudio_content = requests.get(audio_url,head).contentwith open("video.mp4","wb") as f:f.write(video_content)with open("audio.mp4", "wb") as fp:fp.write(audio_content)pass

视频的爬取实际上不难,只是在不停的寻找所需的地址,请求并储存。

牢记爬虫注意事项:

  1. 遵守网站的robots.txt文件: robots.txt 是网站所有者用来控制搜索引擎爬取其网站内容的标准。爬虫在开始抓取网页之前应该检查 robots.txt 文件,并遵守其中规定的限制和指示。尊重robots.txt 是一种网络礼节,也有助于避免法律纠纷和封禁。

  2. 不过度请求网站: 爬虫应该尽量模拟人类访问行为,避免过于频繁或过度的请求。频繁地请求同一个页面或者短时间内大量请求会给服务器造成负担,并可能被视为恶意行为。

  3. 尊重隐私和版权: 爬取的内容可能包含用户数据和受版权保护的内容。在爬取和使用这些数据时,必须遵循隐私保护法律和版权法规。特别是在商业用途中,可能需要得到网站所有者的许可。

  4. 避免爬取敏感信息: 不应该爬取包含个人身份信息或其他敏感数据的页面,除非有明确的法律依据和用户许可。

  5. 设置合理的爬取速率和间隔: 设置适当的爬取速率和请求间隔,以避免给目标网站的服务器带来过大的负载。通常建议使用随机化间隔和分布,以模仿真实用户的访问模式。

  6. 处理错误和异常情况: 爬虫应该能够处理网站返回的错误码和其他异常情况,例如重定向、服务器错误等。合理的错误处理可以提高爬虫的效率和稳定性。

  7. 遵守法律和规定: 不同国家和地区对网络爬虫有不同的法律规定和限制,特别是涉及数据隐私和网络安全方面的法律。使用爬虫时务必遵守当地的法律法规。

网络爬虫是一种强大的工具,但在使用时需要谨慎行事,遵循良好的道德和法律标准,以避免对网络生态系统和个人权利造成损害。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

2024最新网络安全自学路线,内容涵盖3-5年技能提升

01 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面…

做一个能和你互动玩耍的智能机器人之二

智能机器人硬件的一些注意事项和知识和初学者的误区。 一。不要担心不会焊接,我也是购买后才发现,现在的很多板子和元器件可以无焊接使用,比如借助杜邦线和面包板,可以很方便连接。 二。arduino有很多种,一般用的是n…

【Java算法专场】二分查找(上)

目录 前言 什么是二分查找? 二段性 ​​​​​​​​​​​​​​​​​​​​​二分查找 算法分析 算法步骤 算法代码 算法示例 模板 在排序数组中查找元素的第一个和最后一个位置 算法分析 算法步骤 算法代码 算法示例 搜索插入位置 算法分析 算法步…

IEC104转MQTT网关支持将IEC104数据转换为华为云平台可识别的格式

随着智能电网和物联网技术的深度融合,传统电力系统中的IEC104协议设备正逐步向更加开放、智能的物联网体系转型。华为云作为全球领先的云计算和AI服务提供商,其物联网平台为IEC104设备的接入与数据处理提供了强大的支撑。本文将探讨IEC104转MQTT网关在MQ…

KETTLE运行出现乱码和无法执行问题及解决方案

一、乱码问题 (1)出现乱码,在数据库连接里面的选项里面加入:characterEncodingutf8和tinyInt1isBitfalse (2)取消简易转换,点开表输入,取消”允许简易转换”选项&a…

vue3.0学习笔记(一)——vue3简介与vite脚手架的使用

1. 为什么学vue3 Vue3现状: vue-next 2020年09月18日,正式发布vue3.0版本。但是由于刚发布周边生态不支持,大多数开发者处于观望。现在主流组件库都已经发布了支持vue3.0的版本,其他生态也在不断地完善中,这是趋势。…

梯度下降算法在逻辑回归中的应用

逻辑回归简介 sigmoid函数: g ( z ) 1 1 e − z g(z) \frac{1}{1e^{-z}} g(z)1e−z1​ 逻辑回归假设函数: y ^ h θ ( x ) g ( θ T x ) 1 1 e − θ T x \hat{y} h_{\theta}(x) g(\theta^Tx) \frac{1}{1e^{-\theta^Tx}} y^​hθ​(x)g(θTx)…

我的世界!

每位冒险家在《我的世界》中的出生点都各不相同, 有的出生在桦木森林,有的出生在草原, 还有的出生在临近海洋的沙滩。 这些环境叫做生物群系,也常被称为生态系统。 在《我的世界》中的不同生物群系具有不同的地域特色—— 不…

Redis的五种数据类型与命令

目录 引言 一 Redis的特性 二 Redis的安装 三 Redis的优点 四 Redis的五种数据类型与命令 五 Redis的配置文件 引言 Redis是什么? Remote Dictionary Service(远程字典服务器) Redis 是一个开源的(BSD许可)的,C语言编写的,高性能的数…

羊大师:夏夜贪凉,但为啥肚子还要‘保暖计划’?

在这个夏夜,当空调与风扇齐飞,冰镇西瓜与凉面共舞之时,你是否也曾有过这样的疑惑:明明热得汗流浃背,为啥老一辈总念叨着“睡觉再热也要给肚子盖被子”?这背后,藏着的可不仅仅是老一辈的固执&…

centos7手动编译安装redis-6.2.1.tar.gz

本章教程,主要通过手动编译安装的方式,进行安装redis-6.2.1版本,如果需要安装其它版本的,可以在这里找到对应版本进行下载,安装步骤基本上差不多。 下载地址:https://download.redis.io/releases/ 一、下载安装包 wget https://download.redis.io/releases/redis-6.2.1.…

SSM学习9:SpringBoot简介、创建项目、配置文件、多环节配置

简介 SpringBoot式用来简化Spring应用的初始搭建以及开发过程的一个框架 项目搭建 File -> New -> Project 选中pom.xml文件,设置为maven项目 项目启动成功 可以访问BasicController中的路径 配置文件 在resources目录下 application.properties 默…

powershell自定义命令别名

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、查看命令别名二、常见的别名三、自定义别名1.GUI编辑2.命令行编辑 总结 前言 有时候在windows上使用powershell时候常常苦于别名问题,像我这样…

昇思25天学习打卡营第25天|基于MindSpore的GPT2文本摘要

基于MindSpore的GPT2文本摘要 Tips:安装依赖库 pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspore2.2.14 pip install mindnlp下载数据集: from mindnlp.utils import http_get# download dataset url https://download.mindspore.…

Android AutoSize屏幕适配:适配不同屏幕大小的尺寸,让我们无需去建立多个尺寸资源文件

目录 AutoSize是什么 AutoSize如何使用 一、AndroidautoSize是什么 在开发产品的时候,我们会遇到各种各样尺寸的屏幕,如果只使用一种尺寸去定义控件、文字的大小,那么到时候改起来就头皮发麻。以前使用dime的各种类库,文件太多…

敏捷CSM证书国家认可嘛?有什么价值?

CSM证书,全称为Certified Scrum Master,是由Scrum Alliance(敏捷联盟)颁发的一项国际公认的敏捷管理领域认证。该证书不仅在全球范围内受到广泛认可,也在国内得到了业界的广泛关注和重视。 CSM证书的背景 CSM证书是基…

从原理到实践:开发视频美颜SDK与主播美颜工具详解

本篇文章,笔者将深入探讨视频美颜SDK的开发原理和实践应用,重点介绍如何打造一款功能强大的主播美颜工具。 一、视频美颜的基本原理 视频美颜的核心在于图像处理技术,主要包括面部识别、图像增强和特效处理。 1.面部识别 常见的面部识别算…

Codeforces Round 874 (Div. 3)(A~D题)

A. Musical Puzzle 思路: 用最少的长度为2的字符串按一定规则拼出s。规则是&#xff1a;前一个字符串的尾与后一个字符串的首相同。统计s中长度为2的不同字符串数量。 代码: #include<bits/stdc.h> #include <unordered_map> using namespace std; #define N 20…

昇思25天学习打卡营第20天|CV-ResNet50图像分类

打卡 目录 打卡 图像分类 ResNet网络介绍 数据集准备与加载 可视化部分数据集 残差网络构建 Building Block 结构 代码实现 Bottleneck结构 代码实现 构建ResNet50网络 代码定义 模型训练与评估 可视化模型预测 重点&#xff1a;通过网络层数加深&#xff0c;感知…

如何让微课视频更生动?试试这些实时美颜录屏软件!

在数字化教学的浪潮中&#xff0c;真人出镜的微课变得越来越受欢迎。除了清晰的讲解声&#xff0c;老师们偶尔需要亲自出镜&#xff0c;结合生动有趣的动画元素或实地拍摄&#xff0c;让知识传递更加直观和有趣。但问题来了&#xff0c;如何在录制微课时&#xff0c;让摄像头下…