python爬虫实战案例——某站视频爬虫

这篇具有很好参考价值的文章主要介绍了python爬虫实战案例——某站视频爬虫。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

今天突然发现,某站的视频在电脑上是不能下载的。于是乎,就打算在电脑上爬取一下某站的视频。让大家在电脑上也能看,

准备

某站的视频是音频和视频分开的,我在网上搜了一下,要用到一个叫ffmpeg的音视频合成的库,网上教程很多,大家搜一下就可以找到了,我就不在此赘述了。

开始正题

还是老规矩——抓包。对某站进行抓包,非常幸运,某站还是很和蔼可亲的并没有对视频进行加密,一下就可以找到视频链接。

python爬虫实战案例——某站视频爬虫,python爬虫实战案例,爬虫,python,windows,pycharm,音视频,json,正则表达式

 大家记得点一下左下角的格式化,不然并不能一眼就看到视频链接。

在这里我踩坑了,因为这里的视频链接实在是太多了

python爬虫实战案例——某站视频爬虫,python爬虫实战案例,爬虫,python,windows,pycharm,音视频,json,正则表达式

于是乎我刚开始是有点不确定这是不是我要找的视频的链接的,那验证这个链接的最好的办法是什么?没错,就是复制这个链接,然会在搜索栏搜索一下。但是这个链接是搜索不到任何东西的,这也正是我踩的坑。 当时我就直接把这个数据包给丢了,去找别的数据包了,不找还好,一找我就开始捉摸是不是某站加密了,(因为是自学爬虫,最近刚好学到js解密,觉得很有意思,所以一到找不到数据包的时候,满脑子就是被加密了。狗头保命)怎么找不到视频链接。

然后,后面实在是没找着,只能上网搜索大佬们的文章了。然后一看,满脸不可置信,这个链接明明什么都搜不到啊。于是,带着不屑的表情,看戏的心理(狗头保命),把大佬们的代码复制粘贴,看看能不能下载下来视频。哎哟我去,还真下下来了,用的就是我丢掉的那个数据包的第一个url。于是我又把这链接放到浏览器搜索了一遍,还是什么都搜不到,但是它确实可以下载下来视频。到现在我还是没搞清楚是怎么回事,希望有大佬可以给我解答一下。但是我明白了,以后要是再碰到这种链接,直接上代码干它就完了(狗头保命)。

然后,就到了Ctrl+C和Ctrl+V的环节了。开玩笑的,然后就到了敲代码的环节了。前面的请求的部分其实都是一样的。

# url = input("视频链:")
url = 'https://www.bilibili.com/video/BV1614y1z7yr/?spm_id_from=333.1007.tianma.8-4-30.click&vd_source=19577052a287f6b91b30d9f7ecbda428'
# def get_proxy():
#     json_data = requests.get("http://demo.spiderpy.cn/get/").json()
#     proxies = {
#         'http' : 'http://{}'.format(json_data['proxy']),
#         'https' : 'https://{}'.format(json_data['proxy'])
#     }
#     return proxies
headers = {
    'referer': 'https://www.bilibili.com/',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36 Edg/113.0.1774.42'
}
response = requests.get(url=url, headers=headers)

大家要用的话直接注释掉url,然后把url=input点亮就可以了,然后直接输入你要下载视频的链接。然后哪个更get_proxy方法是简单的说就是获取IP地址的,github上的一个代理池项目,因为我很怕会查封我的ip,毕竟爬虫学的好,牢饭少不了,虽然我学的不好(狗头保命)。就是一个反爬参数,但有时候获取的是国外的ip,但是请求不到数据,我就注释掉了。然后就是headers里面的参数,referer一定要带上,你得告诉它你是从某站来的,后面请求视频的时候才能请求得到,不然是请求不到视频的。可能是我在搜索链接的时候没有加上这个,所以我搜索不到,等下再去搜一下链接看看。

然后请求数据做完以后,我又和视频清晰度杠上了,还是因为有那么多的链接,我想搞清楚哪个链接哪个清晰度的视频,最后找了好久,也没有找出哪里是视频清晰度的标识。于是索性我把前面几个链接的视频全部请求下来了,得到的区别如下图

python爬虫实战案例——某站视频爬虫,python爬虫实战案例,爬虫,python,windows,pycharm,音视频,json,正则表达式

这个数据速率和总比特率是个啥,我也不知道,但文件最大的就是最清晰的(狗头保命)。总体看下来,前面那个width和height一样的链接,请求到的视频的清晰度都是最好的,且视频清晰度区别不大,至少我肉眼是分不出来的。 

接下来就是对数据进行解析了

ex1 = '<title data-vue-meta="true">(.*?)_.*?</title>'
ex2 = '<script>window.__playinfo__=(.*?)</script>'
title = re.findall(ex1, response.text, re.S)[0]
data = re.findall(ex2, response.text, re.S)
for i in title:
    if (i in "[\/:*?<>|]"):
        title = title.replace(i, '')
json_data = json.loads(data[0])
video_url = json_data['data']['dash']['video'][0]['baseUrl']
audio_url = json_data['data']['dash']['audio'][0]['baseUrl']

video_cotent = requests.get(url=video_url, headers=headers).content
audio_cotent = requests.get(url=audio_url, headers=headers).content

两个正则表达式,一个获取视频的标题,一个获取视频和音频。一个for循环,去掉存在保存为文件名会报错的标点符号,就是要符合windows的文件命名规范,然后将包含视频、音频链接的文本json化,这样我们可以得到一个字典,可以根据键来取得链接,当然这种转化数据是要分情况的,正好这里可以这么做。然后就是套娃,一层一层的通过键来获取我们想要的值,得到我们的视频和音频链接。

最后,就是以二进制文件保存,视频和音频了,我这里统统保存为了mp4和mp3了。有其他格式需求的小伙伴,可以进行更改,最后保存。

with open(title + '.mp4', 'wb') as f :
    f.write(video_cotent)
with open(title + '.mp3', 'wb') as f :
    f.write(audio_cotent)

python爬虫实战案例——某站视频爬虫,python爬虫实战案例,爬虫,python,windows,pycharm,音视频,json,正则表达式

到这里就全部结束了。

踩坑总结 

第一点

第就是链接在浏览器搜索栏搜索不到东西,但是用代码可以请求到视频,可能是没有带上referer里面的参数。

第二点

就是视频的清晰度,只要是width和hright参数值相同的链接,视频清晰度就相差不到,还有就是排在最前面的链接,基本上就是这个视频的最高分辨率的请求链接了。

 文章来源地址https://www.toymoban.com/news/detail-690550.html

此文章仅用于学习,请勿用于违法犯罪。

 

到了这里,关于python爬虫实战案例——某站视频爬虫的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • python批量爬取某站视频

    python批量爬取某站视频

    前言: 本项目是批量下载B站如下图示例的视频: (家里的小孩想看动画片,就下载到U盘上在电视上给他们放。。。) 在这个项目中,涉及到的模块有以下几个: 1.shutil: Python 标准库中的一个模块,用于文件操作,包括复制、移动、删除文件等。在这个项目中,主要用于创

    2024年02月20日
    浏览(10)
  • Python爬虫实战案例——第一例

    Python爬虫实战案例——第一例

    X卢小说登录(包括验证码处理) 地址:aHR0cHM6Ly91LmZhbG9vLmNvbS9yZWdpc3QvbG9naW4uYXNweA== 打开页面直接进行分析 任意输入用户名密码及验证码之后可以看到抓到的包中传输的数据明显需要的是 txtPwd 进行加密分析。按 ctrl+shift+f 进行搜索。 定位来到源代码中断点进行调试。 然后直接跟

    2024年02月12日
    浏览(13)
  • Python爬虫实战案例——第二例

    Python爬虫实战案例——第二例

    某某美剧剧集下载(从搜索片名开始) 本篇文章主要是为大家提供某些电影网站的较常规的下载电影的分析思路与代码思路(通过爬虫下载电影),我们会从搜索某部影片的开始直到成功下载某一部电影。 地址:aHR0cHM6Ly93d3cuOTltZWlqdXR0LmNvbS9pbmRleC5odG1s 先来分析页面 打开开发

    2024年02月11日
    浏览(11)
  • Python爬虫实战案例——音乐爬虫,收费歌曲依旧可用

    Python爬虫实战案例——音乐爬虫,收费歌曲依旧可用

    因为现在众多音乐平台下载歌曲都要收费了,导致我没有车载音乐听了。于是便自学爬虫做了这个简易的音乐爬虫。不是那些大平台的音乐爬虫,是一个不知名的小音乐网站的爬虫。下面开始正题: 首先,便是找不是那几家大互联网公司的音乐网站,在我的不懈努力之下终于

    2024年02月03日
    浏览(16)
  • 〖Python网络爬虫实战㉗〗- Selenium案例实战(一)

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                  python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月14日
    浏览(10)
  • 〖Python网络爬虫实战㉙〗- Selenium案例实战(三)

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                  python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月07日
    浏览(28)
  • 抖音视频提取工具可导出视频分享链接|视频爬虫批量下载

    抖音视频提取工具可导出视频分享链接|视频爬虫批量下载

    抖音无水印视频批量下载工具操作指南 一、工具介绍 我们开发了一款功能强大的视频批量下载工具,不仅能够通过单个视频链接进行提取,还可以通过进行视频搜索,Q:290615413实现批量提取和有选择性的下载。 二、操作步骤 2.1 批量提取视频 进入软件,点击“

    2024年04月15日
    浏览(86)
  • 〖Python网络爬虫实战㉕〗- Ajax数据爬取之Ajax 案例实战

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                 python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月06日
    浏览(35)
  • Python爬虫逆向实战案例(五)——YRX竞赛题第五题

    Python爬虫逆向实战案例(五)——YRX竞赛题第五题

    题目:抓取全部5页直播间热度,计算前 5 名直播间热度的 加和 地址:https://match.yuanrenxue.cn/match/5 cookie中m值分析 首先打开开发者工具进行抓包分析,从抓到的包来看,参数传递了查询参数 m 与 f ,同时页面中给了提示说cookie仅有50秒的有效期,所以逆向参数可以直接通过co

    2024年02月11日
    浏览(18)
  • 〖Python网络爬虫实战㉔〗- Ajax数据爬取之Ajax 分析案例

    订阅:新手可以订阅我的其他专栏。免费阶段订阅量1000+                 python项目实战                  Python编程基础教程系列(零基础小白搬砖逆袭) 说明:本专栏持续更新中,目前专栏免费订阅,在转为付费专栏前订阅本专栏的,可以免费订阅付费专栏,

    2024年02月07日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包