Python爬取网站视频资源

思路:

在界面找到视频对应的html元素位置,观察发现视频的url为https://www.pearvideo.com/video_+视频的id,而这个id在html中的href中,所以第一步需要通过xpath捕获到所需要的id

在https://www.pearvideo.com/video_+id的页面,通过控制台查看返回的响应消息,发现没有视频数据,说明视频是进入页面后由其他请求发起获得

在搜索框中搜索mp4,发现视频文件对应的请求,观察请求的url与负载,发现负载1为视频的id另一个为随机生成的数字。方法为get

由其返回的视频url与元素中的url进行对比发现是用cont-id替换了一段数字。这一段的url就为视频的url

代码实现:

代码:

import os
from lxml import etree
import requests
import time
from fake_useragent import UserAgent
# UA绕过
ua = UserAgent()
headers = {'User-Agent': ua.random
}def deal_video(id):time.sleep(1)url = "https://www.pearvideo.com/video_" + idurl1 = "https://www.pearvideo.com/videoStatus.jsp?contId=" + idnew_headers = headersnew_headers["Referer"] = urlpage_json = requests.get(url=url1, headers=new_headers).json()video_src = page_json["videoInfo"]["videos"]["srcUrl"]key = "cont-"+url1.split("=")[1]return video_src.replace(video_src.split('/')[6].split('-')[0], key)def save_video(video_src,name):time.sleep(1)print("正在下载"+name)videoData = requests.get(url=video_src, headers=headers).contentif not os.path.exists("./videoLibs"):os.mkdir("./videoLibs")with open("./videoLibs/"+name+".mp4",'wb') as fp:fp.write(videoData)print(dic['name']+" 下载完成")post_url = 'https://www.pearvideo.com/category_1'
# 发出请求
page_text = requests.get(url=post_url, headers=headers).text
# 数据处理
urls = []
tree = etree.HTML(page_text)
videos = tree.xpath('//a[@class="vervideo-lilink actplay"]')
for video in videos:time.sleep(0.5)name = video.xpath('./@href')[0]information_url = "https://www.pearvideo.com/" + nameh = headersid = name.split("_")[1]#从函数中获取到视频的资源位置video_url=deal_video(id)dic = {'name': name,'url': video_url}save_video(video_url,name)urls.append(dic)

解析:

获取主页的text,然后通过xpath找到所以的视频<a>标签,for循环标签,获得href中的id。存储url与名字。通过视频id进入deal_video函数

在url后动态添加视频id,一个作为访问源url,表示从这个页面向url1发起请求,请求头需要携带Referer。通过字典查找获得srcUrl中的视频链接,并将其数字部分替换为cont-id(KEY)。返回视频的url。

获取视频链接后进入保存函数。

向视频链接发起请求保存到文件夹中

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

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

相关文章

【王道数据结构】【chapter8排序】【P360t3】

荷兰国旗问题&#xff1a;设有一个仅由红、白、蓝三种颜色的条块组成的条状序列&#xff0c;存储在一个顺序表中&#xff0c;请编写一个时间复杂度为O(N)的算法&#xff0c;是这些条块按照红、白、蓝的顺序排好&#xff0c;即排成荷兰国旗图案。请完成算法实现&#xff1a; #in…

端侧AI体验再颠覆:70亿参数大模型推理提速70%以上!

随着大数据、云计算、人工智能等技术日新月异&#xff0c;大模型作为人工智能领域的重要成果&#xff0c;正逐步改变着我们的生产与生活。在算力成本、工作效率与安全性等需求的不断增长下&#xff0c;大模型的应用逐渐从云端延伸至边缘端&#xff0c;为各行各业带来前所未有的…

搬运5款小体积,无广告,超实用的软件

​ 大家好&#xff0c;我又来啦&#xff0c;今天给大家带来的5款软件&#xff0c;共同特点都是体积小、无广告、超实用&#xff0c;大家观看完可以自行搜索下载哦。 1.全局鼠标手势——MouseInc ​ MouseInc是一款全局鼠标手势软件&#xff0c;可以通过按住右键滑动鼠标执行各…

vscode连接服务器与FileZilla上传到服务器

https://www.cnblogs.com/qiuhlee/p/17729647.html&#xff08;这个是vscode连接服务器&#xff09; 主机&#xff1a;就是服务器的主机号 使用者名称&#xff1a;比如ALmax的用户名 密码&#xff1a;比如ALmax的密码

用于游戏开发的顶级 PYTHON 框架

一、说明 我们试图用python开发游戏&#xff0c;一旦产生这个念头&#xff0c;就伴随这样一个问题&#xff1a;当今用于构建游戏的领先 Python 框架有哪些&#xff1f;python下&#xff0c;支持游戏开发平台有哪些优势&#xff1f;我们在这篇博文中告诉你。 二、高级游戏平台简…

腾轩科技传媒探讨网络整合营销推广的策略和效果

在当今高度信息化的商业环境中&#xff0c;整合营销推广&#xff08;IMC&#xff09;已经成为了品牌营销策略的核心。它旨在通过多种渠道和平台&#xff0c;将一致、连贯的品牌信息传达给目标受众&#xff0c;从而增强品牌知名度和忠诚度。腾轩科技传媒将深入探讨整合营销推广的…

为什么你制作的画册没有吸引力呢

​在当今竞争激烈的市场环境中&#xff0c;画册作为企业形象和产品宣传的重要工具&#xff0c;其制作质量直接影响着企业的品牌形象和销售业绩。然而&#xff0c;许多企业在制作画册时却发现&#xff0c;自己的画册缺乏吸引力&#xff0c;无法吸引潜在客户的注意力 为什么你制作…

零基础如何快速入门伦敦金交易

伦敦金交易是金融市场中备受关注的一种投资方式。对于想要学习如何炒伦敦金并快速开始交易的人来说&#xff0c;本文将为您提供一份全面而详细的指南。无论您是初学者还是有经验的交易者&#xff0c;本文都将帮助您了解伦敦金交易的基本知识&#xff0c;并提供一些实用的技巧和…

PSO-CNN-LSTM多输入时序预测|粒子群算法优化的卷积-长短期神经网络时序预测(Matlab)——附代码+数据

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、算法介绍&#xff1a; 四、完整程序数据分享下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matlab平台…

jmeter如何请求访问https接口

添加线程组http请求 新建线程组&#xff0c;添加http请求 填入协议&#xff0c;ip&#xff0c;端口&#xff0c;请求类型&#xff0c;路径&#xff0c;以及请求参数&#xff0c;查看结果树等。 然后最关键的一步来了。 导入证书 步骤&#xff1a;获取证书&#xff0c;重新生…

视觉AIGC识别——人脸伪造检测、误差特征 + 不可见水印

视觉AIGC识别——人脸伪造检测、误差特征 不可见水印 前言视觉AIGC识别【误差特征】DIRE for Diffusion-Generated Image Detection方法扩散模型的角色DIRE作为检测指标 实验结果泛化能力和抗扰动 人脸伪造监测&#xff08;Face Forgery Detection&#xff09;人脸伪造图生成 …

电视盒子什么品牌好?资深数码粉强推口碑电视盒子推荐

我对各类数码产品是非常熟悉的&#xff0c;尤其是电视盒子&#xff0c;用过超十五款了&#xff0c;涵盖了各个主流品牌&#xff0c;最近看到很多朋友在讨论不知道电视盒子什么品牌好&#xff0c;我这次要来分享的就是口碑最好的五款电视盒子推荐给各位不懂如何选电视盒子的新手…