网站:数码视频大全_数码视频中心_虎牙视频

总的源代码:

import os.path
import re
import timeimport requests
import json
import pprint  #把字典类型的数据按照源代码类型的形式输出来,更容易观察
#建立下载虎牙视频的地址:dir_name
dir_name = '数码——虎牙视频'
if not os.path.exists(dir_name):os.mkdir(dir_name)
head = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"
}def find_save(id):#先找视频播放地址,利用.mp4到前面/的一堆东西来查找,单个视频的总的播放地址#https://videobd-platform.cdn.huya.com/1048585/5668003/31077907/d68919f9eb244c073904380017b185ac.mp4?vid=604111737time.sleep(3)  #好像有一个视频有一点大,然后后面就断开连接了,这里把访问时间改变一下#寻找视频播放地址的总链接,改变videoId来改变视频baseurl = f'https://liveapi.huya.com/moment/getMomentContent?videoId={id}'#对视频的播放地址来查找视频详细的可以下载的网址request = requests.get(url=baseurl,headers=head)response = request.json()  #查找的JQ类型的,然后就改变一下# pprint.pprint(response)title = response['data']['moment']['title']  ##字典类型来用键查找值vedio_link = response['data']['moment']['videoInfo']['definitions'][0]['url']  ##字典类型来用键查找值# print(title)# print(vedio_link) #判断是不是查找到了想要的标题以及链接#保存视频(利用获得的详细的可以下载的视频来进行下载)file_name = titlerequ = requests.get(url=vedio_link,headers=head)with open(dir_name + '/' + file_name + '.mp4','wb') as f:  #一定要对视频加上后缀名(不然不可以播放)f.write(requ.content)print(file_name,'下载完成')requ.close()request.close() #对打开的网页进行关闭,防止被拉黑
#上面是对单个视频进行下载
#下面我们利用链接不同的id来对一个页面的视频进行下载
def find_id():#先利用查找视频的详细链接来搜索然后找到所有视频的总页面的来凝结all_url = 'https://v.huya.com/g/all?set_id=41'request = requests.get(url=all_url,headers=head)response = request.text# print(response)idss = re.findall(r' <script> window.HNF_GLOBAL_INIT = (.*?) </script>',response)[0]  #利用正则表达式来来找到存有所有的id的总的字符串#利用json来让字符串强制转换为字典类型idss = json.loads(idss)# pprint.pprint(idss)#这里注意,前面是字典,但是字典里面到每个视频的信息又一次成了列表类型ids = idss['videoData']['videoDataList']['value']print(ids)#这里利用列表,查找每一个id,因为有个保存的函数,所以把这个搜寻的小程序也写成函数,然后把各个id放到列表当中,然后再单个链接去下载id = [i['vid']for i in ids]print(id)  #这里的所有的id都放在了一个列表当中# for i in ids:#     id = i['vid']  #遍历列表,每个元素(也是每个视频的信息)又是字典#     print(id)  #这里的id是一个一个的,需要添加步骤放到一个列表当中request.close()return idid = find_id()
for i in id:find_save(i)

1.先找单个视频的网页中的包

(1)  1)右键点击检查,然后

2)复制/后面,.mp4前面的内容

3)将复制的内容在当前页面搜索获取每个视频页面的网址代码

再多打开几个网址同做这样的事会发现我们获得的单个视频播放的网址只有id后面不同

(2).利用单个视频中的信息来找所有视频的videoid,只有这里不同,并且把callback和uid删去也可以打开同样的网页

代码:

import os.path
import re
import timeimport requests
import json
import pprint  #把字典类型的数据按照源代码类型的形式输出来,更容易观察
#建立下载虎牙视频的地址:dir_name
dir_name = '数码——虎牙视频'
if not os.path.exists(dir_name):os.mkdir(dir_name)
head = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"
}def find_save(id):#先找视频播放地址,利用.mp4到前面/的一堆东西来查找,单个视频的总的播放地址#https://videobd-platform.cdn.huya.com/1048585/5668003/31077907/d68919f9eb244c073904380017b185ac.mp4?vid=604111737time.sleep(3)  #好像有一个视频有一点大,然后后面就断开连接了,这里把访问时间改变一下#寻找视频播放地址的总链接,改变videoId来改变视频baseurl = f'https://liveapi.huya.com/moment/getMomentContent?videoId={id}'#对视频的播放地址来查找视频详细的可以下载的网址request = requests.get(url=baseurl,headers=head)response = request.json()  #查找的JQ类型的,然后就改变一下# pprint.pprint(response)title = response['data']['moment']['title']  ##字典类型来用键查找值vedio_link = response['data']['moment']['videoInfo']['definitions'][0]['url']  ##字典类型来用键查找值# print(title)# print(vedio_link) #判断是不是查找到了想要的标题以及链接#保存视频(利用获得的详细的可以下载的视频来进行下载)file_name = titlerequ = requests.get(url=vedio_link,headers=head)with open(dir_name + '/' + file_name + '.mp4','wb') as f:  #一定要对视频加上后缀名(不然不可以播放)f.write(requ.content)print(file_name,'下载完成')requ.close()request.close() #对打开的网页进行关闭,防止被拉黑
#上面是对单个视频进行下载

2.查找所有视频id

1)利用上面单个视频的videoid,在整个页面的检查中查找

这里上面获取到headers的url是整个页面的网址,和地址栏上面的网址有一些不同

2)查找id的位置

这里利用两处查找快捷键,分别都在图里的位置,查找内容是videoid

代码:

import os.path
import re
import timeimport requests
import json
import pprint  #把字典类型的数据按照源代码类型的形式输出来,更容易观察#下面我们利用链接不同的id来对一个页面的视频进行下载
def find_id():#先利用查找视频的详细链接来搜索然后找到所有视频的总页面的来凝结all_url = 'https://v.huya.com/g/all?set_id=41'request = requests.get(url=all_url,headers=head)response = request.text# print(response)idss = re.findall(r' <script> window.HNF_GLOBAL_INIT = (.*?) </script>',response)[0]  #利用正则表达式来来找到存有所有的id的总的字符串#利用json来让字符串强制转换为字典类型idss = json.loads(idss)# pprint.pprint(idss)#这里注意,前面是字典,但是字典里面到每个视频的信息又一次成了列表类型ids = idss['videoData']['videoDataList']['value']print(ids)#这里利用列表,查找每一个id,因为有个保存的函数,所以把这个搜寻的小程序也写成函数,然后把各个id放到列表当中,然后再单个链接去下载id = [i['vid']for i in ids]print(id)  #这里的所有的id都放在了一个列表当中# for i in ids:#     id = i['vid']  #遍历列表,每个元素(也是每个视频的信息)又是字典#     print(id)  #这里的id是一个一个的,需要添加步骤放到一个列表当中request.close()return id

3.将这两步联合起来,可以实现对整个页面的视频的保存

代码:

import os.path
import re
import timeimport requests
import json
import pprint  #把字典类型的数据按照源代码类型的形式输出来,更容易观察
#建立下载虎牙视频的地址:dir_name
dir_name = '数码——虎牙视频'
if not os.path.exists(dir_name):os.mkdir(dir_name)
head = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"
}def find_save(id):#先找视频播放地址,利用.mp4到前面/的一堆东西来查找,单个视频的总的播放地址#https://videobd-platform.cdn.huya.com/1048585/5668003/31077907/d68919f9eb244c073904380017b185ac.mp4?vid=604111737time.sleep(3)  #好像有一个视频有一点大,然后后面就断开连接了,这里把访问时间改变一下#寻找视频播放地址的总链接,改变videoId来改变视频baseurl = f'https://liveapi.huya.com/moment/getMomentContent?videoId={id}'#对视频的播放地址来查找视频详细的可以下载的网址request = requests.get(url=baseurl,headers=head)response = request.json()  #查找的JQ类型的,然后就改变一下# pprint.pprint(response)title = response['data']['moment']['title']  ##字典类型来用键查找值vedio_link = response['data']['moment']['videoInfo']['definitions'][0]['url']  ##字典类型来用键查找值# print(title)# print(vedio_link) #判断是不是查找到了想要的标题以及链接#保存视频(利用获得的详细的可以下载的视频来进行下载)file_name = titlerequ = requests.get(url=vedio_link,headers=head)with open(dir_name + '/' + file_name + '.mp4','wb') as f:  #一定要对视频加上后缀名(不然不可以播放)f.write(requ.content)print(file_name,'下载完成')requ.close()request.close() #对打开的网页进行关闭,防止被拉黑
#上面是对单个视频进行下载
#下面我们利用链接不同的id来对一个页面的视频进行下载
def find_id():#先利用查找视频的详细链接来搜索然后找到所有视频的总页面的来凝结all_url = 'https://v.huya.com/g/all?set_id=41'request = requests.get(url=all_url,headers=head)response = request.text# print(response)idss = re.findall(r' <script> window.HNF_GLOBAL_INIT = (.*?) </script>',response)[0]  #利用正则表达式来来找到存有所有的id的总的字符串#利用json来让字符串强制转换为字典类型idss = json.loads(idss)# pprint.pprint(idss)#这里注意,前面是字典,但是字典里面到每个视频的信息又一次成了列表类型ids = idss['videoData']['videoDataList']['value']print(ids)#这里利用列表,查找每一个id,因为有个保存的函数,所以把这个搜寻的小程序也写成函数,然后把各个id放到列表当中,然后再单个链接去下载id = [i['vid']for i in ids]print(id)  #这里的所有的id都放在了一个列表当中# for i in ids:#     id = i['vid']  #遍历列表,每个元素(也是每个视频的信息)又是字典#     print(id)  #这里的id是一个一个的,需要添加步骤放到一个列表当中request.close()return idid = find_id()
for i in id:find_save(i)

python爬取虎牙视频排行榜上的数码视频相关推荐

  1. Python爬取哔哩哔哩今日热门视频实战

    Python爬取哔哩哔哩今日热门视频 今天给大家分享一个利用python来爬取哔哩哔哩今日热门视频的实战, 还是先说思路: 第一步:想办法寻找到单个视频的真实的url位置 第二步:提取单个视频真实ur ...

  2. python爬取虎牙弹幕礼物数据

    python爬取虎牙弹幕礼物数据 查看官方文档 找到弹幕传输的方式 生成websocket对应的参数 第一步: 第二步: 调通websocket 建立链接 获取数据和保持心跳 附上完整代码 注: 查看 ...

  3. 用python爬取网易云排行榜歌曲

    用python爬取网易云排行榜歌曲 第一次发表自己的东西,很是胆颤,如有不对的地方,希望大家多指教! 思路:打开网址→解析音乐id→结合接口生成下载url→下载音乐→保存本地 需要用到的库文件: im ...

  4. 自从学会:用Python爬取虎牙颜值区美女主播照片后,身体一天不如一天

    本次干货内容给大家呈现的利用爬虫获取海量美女图片.不知道大家有没有上过斗鱼直播.虎牙直播,直播室里面美女姐姐可是比比皆是. 有很多美女姐姐的图片做桌面,即使加班也是高兴的! 好啦!先唠叨一下爬虫的步骤 ...

  5. 【爬虫实战】python爬取虎牙直播间封面美女图片

    Python爬虫爬取虎牙直播间封面美女图片 本文目录 Python爬虫爬取虎牙直播间封面美女图片 写作缘起 上代码 效果展示 思路分析 写作缘起 这篇文章主要是介绍如何使用python爬虫来爬取虎牙直 ...

  6. 使用python爬取虎牙主播直播封面图片(scrapy)

    目的:使用Scrapy框架爬取虎牙主播直播封面图片 Scrapy(通过pip 安装Scrapy框架pip install Scrapy)和Python3.x安装教程可自行寻找教程安装,这里默认在Win ...

  7. 【Python爬虫】用Python爬取娱乐圈排行榜数据

      想关注你的爱豆最近在娱乐圈发展的怎么样吗?本文和你一起爬取娱乐圈的排行榜数据,来看看你的爱豆现在排名变化情况,有几次登顶,几次进了前十名呀. PS:在下一篇文章中分析排行榜的动态变化趋势,并绘制成 ...

  8. 利用python爬取实习僧网站上的数据

    最近在找实习,就顺便想到用python爬取一些职位信息看看,有哪些岗位比较缺人. #_*_coding:utf-8_*_import requests from bs4 import Beautifu ...

  9. python爬取b站排行榜_实时爬取B站排行榜并保存为表格——每周一个爬虫小教程系列...

    从这周开始,每周来一个爬虫小教程,希望对你们有所帮助,这次的目标是B站排行榜至于爬取什么内容,目前感觉就把序号,名称以及评分爬取下来吧(因为我是边写教程边写代码的) 这次需要用到的知识:Request ...

最新文章

  1. 小工匠聊架构-分布式场景下的并发幂等性常见的解决方案
  2. python源码精要(3)-C代码规范
  3. 微信开发SDK,Jeewx-Api 1.3.1 版本发布
  4. 拼数(洛谷-P1012)
  5. Linux下的虚拟机拷贝与快照生成
  6. ssh2的application.xml配置文件配置详解
  7. html table 充满div,HTML,使用div+css实现自适应table布局
  8. 计算机本科科研什么项目,本科生做科研:大势所趋?
  9. SpringBoot防止大量请求攻击
  10. leetcode 73 矩阵归零
  11. 学习arduino esp32相关例程(1)深度睡眠与唤醒
  12. 想知道照片一键换天空怎么弄?推荐两款图片编辑软件
  13. MySQL基本概念和正确发音(表、列、行、注解等讲解)
  14. 神经网络为什么需要加偏置项(bias)?
  15. 这个是可以将得到速查编码的存储过程 如 中国人 可以得到 ZGR
  16. linux 4TB硬盘 只识别2T,win7只识别最多2T的分区,是不是?如果是这样,有啥办法在不分区的状况下就支持4T的硬盘?...
  17. 2022-07-10 第八小组 张明敏 学习笔记
  18. C++提高案例之-演讲比赛流程管理系统
  19. jquery弹窗时禁止body滚动条滚动
  20. an error has occurred while trying to access the log file. logging may not function properly

热门文章

  1. 【Verilog刷题篇】硬件工程师从0到入门2|组合逻辑
  2. 国内汽柴油价格最新调整,7.26山东地炼今日报价
  3. 知乎基于 Apache Doris 的 DMP 平台架构建设实践|万字长文详解
  4. 【Java语言基础】面向对象之封装、继承、抽象类、接口、多态综合知识习题及总结day11
  5. 多进程爬取豆瓣电影前100,将数据导出为Excel表
  6. 前端和后端的英文_80后老阿姨转行做前端的学习心得,深情交流!
  7. 阿里云天池大赛工业蒸汽预测学习(3)
  8. seo小白掌握必备常用seo工具以及seo工具的使用
  9. 香港公司注册详细介绍
  10. opencv系列之基于NVIDIA显卡的opencv-python硬解方案