接上节:Fiddler的使用[抓包] https://blog.csdn.net/GreatXiang888/article/details/103509817
代码:点这里

分析Request和返回值

从上节第9小点,得知 Request Headers:

GET /api/getHttpVideoInfo.do?pid=3554ca638eed43a7bcbaf259101cb276&tz=-8&from=000news&idl=32&idlr=32&modifyed=false&url=http://tv.cctv.com/2019/11/23/VIDEzEc0GomMhqbJubVXXSKy191123.shtml&tsp=1576137212&vn=1540&vc=C8167DFA99A01887A7BD7B8C54EF6F4C&uid=785BC95C310710E1FCA8DDA7F5A48902 HTTP/1.1

其中,pid=3554ca638eed43a7bcbaf259101cb276
同时,它的Host为vdn.apps.cntv.cn
所以浏览器通过get方式访问http://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid=3554ca638eed43a7bcbaf259101cb276
之后拿到的数据就是第10小点。

{“ack”:“yes”,“status”:“001”,“tag”:“北京 世界5G大会 项目”,“title”:"[新闻直播间]北京 世界5G大会闭幕 80个项目正式签约",“play_channel”:“CCTV 新闻频道”,“produce”:"",“editer_name”:“zhoujieyi”,“produce_id”:“wxsb01”,“column”:“新闻直播间精切169”,“f_pgmtime”:“2019-11-23 10:31:29”,“cdn_info”:{“cdn_vip”:“vod.cntv.lxdns.com”,“cdn_code”:“VOD-MP4-CDN-CNC”,“cdn_name”:“3rd网宿”},“video”:{“totalLength”:“95.00”,“lowChapters”:[{“duration”:“95”,“image”:“http://p5.img.cctvpic.com/fmspic/2019/11/23/3554ca638eed43a7bcbaf259101cb276-53.jpg”,“url”:“http://vod.cntv.lxdns.com/flash/mp4video63/TMS/2019/11/23/3554ca638eed43a7bcbaf259101cb276_h264200000nero_aac16.mp4”}],“chapters”:[{“duration”:“95”,“image”:“http://p5.img.cctvpic.com/fmspic/2019/11/23/3554ca638eed43a7bcbaf259101cb276-53.jpg”,“url”:“http://vod.cntv.lxdns.com/flash/mp4video63/TMS/2019/11/23/3554ca638eed43a7bcbaf259101cb276_h264418000nero_aac32.mp4”}],“chapters2”:[{“duration”:“95”,“image”:“http://p5.img.cctvpic.com/fmspic/2019/11/23/3554ca638eed43a7bcbaf259101cb276-53.jpg”,“url”:“http://vod.cntv.lxdns.com/flash/mp4video63/TMS/2019/11/23/3554ca638eed43a7bcbaf259101cb276_h264818000nero_aac32.mp4”}],“chapters3”:[{“duration”:“95”,“image”:“http://p5.img.cctvpic.com/fmspic/2019/11/23/3554ca638eed43a7bcbaf259101cb276-53.jpg”,“url”:“http://vod.cntv.lxdns.com/flash/mp4video63/TMS/2019/11/23/3554ca638eed43a7bcbaf259101cb276_h2641200000nero_aac16.mp4”}],“chapters4”:[{“duration”:“95”,“image”:“http://p5.img.cctvpic.com/fmspic/2019/11/23/3554ca638eed43a7bcbaf259101cb276-53.jpg”,“url”:“http://vod.cntv.lxdns.com/flash/mp4video63/TMS/2019/11/23/3554ca638eed43a7bcbaf259101cb276_h2642000000nero_aac16.mp4”}],“validChapterNum”:5,“url”:""},“hls_cdn_info”:{“cdn_vip”:“newcntv.qcloudcdn.com”,“cdn_code”:“VOD-HLS-CDN-QQNEW”,“cdn_name”:“3rd腾讯云-新”},“hls_url”:“http://newcntv.qcloudcdn.com/asp/hls/main/0303000a/3/default/3554ca638eed43a7bcbaf259101cb276/main.m3u8?maxbr=2048”,“asp_error_code”:“0”,“manifest”:{“audio_mp3”: “http://newcntv.qcloudcdn.com/asp/audio/3/5/5/4/3554ca638eed43a7bcbaf259101cb276/mp3/main.m3u8”},“client_sid”:“3pmUncxlLXx2UtnIePF7mFRfnM+CSn1x3+dz8YEtk7A=”,“public”:“1”,“is_invalid_copyright”:“0”,“is_protected”:“0”,“is_fn_hot”:“true”,“is_p2p_use”:false,“default_stream”:“chapters3”,“lc”:{“isp_code”:“5”,“city_code”:"",“provice_code”:“BJ”,“country_code”:“CN”,“ip”:“115.27.194.97”},“is_ipad_support”:“true”,“version”:“0.2”,“embed”:"",“is_fn_multi_stream”:false}

标黄色的就是我们想要的链接。

获取pid

1,先把python包安装好,能导入正常即可。

import requests, re, json, os
from urllib.parse import urlencode
from urllib.request import urlretrieve
import pprint
import re

2,分析pid位置
http://tv.cctv.com/2019/11/23/VIDEzEc0GomMhqbJubVXXSKy191123.shtml页面中,按下Ctrl+U,查看源代码。
按下Ctrl+F,粘贴pid值,找到对应第5个。

3,写代码
用正则表达式将其提取出来。

def getPid(url):#url为该页面的网址return_text = requests.get(url).textsearchObj = re.findall(r'<!--repaste.video.code.begin-->(.+?)<!--repaste.video.code.end-->', return_text)return searchObj[0]

获取下载视频链接

1,分析
从 分析Request和返回值 可以看到,如果res为返回值,则res['video']['chapters4'][0]['url']为对应视频链接:http://vod.cntv.lxdns.com/flash/mp4video63/TMS/2019/11/23/3554ca638eed43a7bcbaf259101cb276_h2642000000nero_aac16.mp4
2,写代码

def getVideInfo(pid):#pid为该页面视频对应的pid#pid 从页面中的源代码找到,在<!--repaste.video.code.begin-->和<!--repaste.video.code.end-->之间url = "http://vdn.apps.cntv.cn/api/getHttpVideoInfo.do?pid=" + pidres = requests.get(url).textres = json.loads(res)title = res['title']video_url = res['video']['chapters4'][0]['url']return title,video_url

保存到本地

直接写代码

def saveVideo(url):pid = getPid(url)title,video_url = getVideInfo(pid)urlretrieve(video_url, title+".mp4")print("完成保存!")

效果


文件夹中会添加一个视频文件。
可以打开:
xxx

视频讲解

(录得不好,前几次没经验)
链接:https://pan.baidu.com/s/1BvV8mgQCGrHgQvUx7rL-mg 提取码:w9od

下载xxx视频[python]相关推荐

  1. 下载美拍视频 python

    下载美拍视频 获取用户ID 通过网页端搜索用户,获取用户ID 获取页面中的视频地址 获取到用户ID后,通过地址https://www.meipai.com/user/userid,访问.在返回的htm ...

  2. python官网下载步骤视频-Python 实现视频下载

    最近一两年短视频业务风生水起,各个视频网站都有各自特色的短视频内容.如果有这样一个程序,可以把各大视频网站的热门用户最新发布的视频都下载下来,不仅方便自己观看,还可以将没有版权的视频发布在个人社交网站 ...

  3. python视频下载自动提取视频封面,上传七牛云并写入Mysql数据库(一)

    有时候需要下载一些视频上传到数据库,网上很多抓取的方式用起来都不是很方便,自己写了一个能够用的抓取视频的脚本,并且自动提取视频封面,上传到七牛云,最后按照规则写到数据库.大大提高了工作效率. pip需 ...

  4. python怎么执行程序_小鹅通视频怎么下载?用python实现小鹅通视频下载(二)

    小鹅通视频怎么下载?用python实现小鹅通视频下载(二) 背景 上次分享<小鹅通视频怎么下载?用python实现小鹅通视频下载(一)[1]>后,引来了很多人咨询小鹅通视频怎么下载的问题. ...

  5. python批量下载b站_python 批量下载bilibili视频的gui程序

    运行效果: 完整代码: # !/usr/bin/python # -*- coding:utf-8 -*- # time: 2019/07/02--08:12 __author__ = 'Henry' ...

  6. python批量下载bilibili视频_如何批量下载bilibili的视频?

    貌似现在 you-get 已经支持批量下载了.通过下面命令就可以批量下载了 you-get --playlist 网址 本来是带这个需求来的,看到 Venchi 的答案,装了 Python3 之后发现 ...

  7. python爬app西瓜视频_Python爬虫下载西瓜视频

    Python爬虫下载西瓜视频 1.简介 由于西瓜视频免费,全站视频都可以下载,需要指定详情的视频链接,默认720P,电影内存1G多 2.Python 清单文件 requests==2.21.0 lxm ...

  8. 利用Python you-get 下载网页视频

    平时可以使用python 下 you-get 命令 下载一些视频. 如果还没有python,请先安装 python 然后 ,如果是windows 下 ,先打开 cmd 命令行, 输入 pip inst ...

  9. 宝藏下载神器,python一键下载B站视频

    B站无疑是一个宝藏地带,作为一个宝藏(老)男孩,请自行忽略(老)字,B站,一个学习的天堂,请一定珍惜,好好使用!作为吃灰党资深成员,一些的好的视频无疑需要进收藏夹吃灰,相信各位好机油肯定收藏了不少小姐 ...

  10. 利用python you-get库下载网络视频、音乐及图片

    Python,让繁琐工作高效便捷:利用python you-get库单个.批量下载网络视频.音乐及图片,you-get命令需要在cmd窗口中运行. 很多人学习python,不知道从何学起. 很多人学习 ...

最新文章

  1. Delphi XE5 常用功具与下载
  2. Codeforces 1198 1199
  3. 操作系统二:计算机内存体系
  4. Django学习笔记10
  5. Spring在3.1版本后的bean获取方法的改变
  6. c+ +三角函数_C ++中的三角函数
  7. 执行Linux脚本出错,出现No Such file or directory异常
  8. 大数据可视化技术的挑战及应对
  9. 非常经典的java编程题全集-共50题(11-30)
  10. DLL注入——使用全局钩子
  11. cachecloud:安装部署(一)
  12. 如图GX Works2所示我该如何操作?
  13. linux的图形界面的管理
  14. 直方图中bins应如何理解及处理
  15. oracle pga的作用,ORACLE PGA 的调整
  16. C语言/C++常见习题问答集锦(五十二) 之职工信息管理系统
  17. 说说twitter(一)
  18. 【字节跳动面试题】赛马问题 64匹马8个跑道最少几次赛出最快的4匹马
  19. jmeter高分辨率适配 + 参数栏正常显示
  20. Java遍历JsonObject对象

热门文章

  1. js如何实现页面跳转(大全)
  2. 《嵌入式 – GD32开发实战指南》第7章 定时器
  3. 宝马 android手机同步,BMW将发布无线安卓互联系统,CarPlay终于不再一家独大!
  4. Superset 实现可视化报表发布
  5. 环境试验之模拟运输试验
  6. Ubuntu安装USB无线网卡驱动
  7. matlab pv图,Matlab中imagesc
  8. hive sql 日期格式转换
  9. python调用swmm程序_Python SWMM5包_程序模块 - PyPI - Python中文网
  10. 【机器学习】机器学习基石-林轩田-1-机器学习介绍