一、概述

爬取步骤

第一步:获取视频所在的网页

第二步:F12中找到视频真正所在的链接

第三步:获取链接并转换成机械语言

第四部:保存

二、分析视频链接

获取视频所在的网页

以酷6网为例,随便点击一个视频播放链接,比如:https://www.ku6.com/video/detail?id=udfY7DjsSXbg8ghbDnhUwNTinOY

F12中找到视频真正所在的链接

按F12打开工具栏,network-->Media,这里会显示媒体文件

刷新页面,就能看到真正的视频加载链接

获取链接并转换成机械语言

查看网页代码,找到js代码。这里面就可以看到真正的视频链接地址

那么通过正则匹配,就可以得到视频地址了。

直接打开这个视频地址,网页可以直接播放。

保存

可以直接播放的话,通过requests模块,就可以下载二进制文件了。

三、代码实现

完整代码

#!/usr/bin/python3#-*- coding: utf-8 -*-

importrefrom lxml importetreeimportrequestsimporttimefrom tqdm importtqdmimportosfrom urllib.request importurlopendefdownload_from_url(url, dst):"""@param: url to download file

@param: dst place to put the file

:return: bool"""

#获取文件长度

try:

file_size= int(urlopen(url).info().get('Content-Length', -1))exceptException as e:print(e)print("错误,访问url: %s 异常" %url)returnFalse#print("file_size",file_size)

#判断本地文件存在时

ifos.path.exists(dst):#获取文件大小

first_byte =os.path.getsize(dst)else:#初始大小为0

first_byte =0#判断大小一致,表示本地文件存在

if first_byte >=file_size:print("文件已经存在,无需下载")returnfile_size

header= {"Range": "bytes=%s-%s" %(first_byte, file_size)}

pbar=tqdm(

total=file_size, initial=first_byte,

unit='B', unit_scale=True, desc=url.split('/')[-1])#访问url进行下载

req = requests.get(url, headers=header, stream=True)try:

with(open(dst,'ab')) as f:for chunk in req.iter_content(chunk_size=1024):ifchunk:

f.write(chunk)

pbar.update(1024)exceptException as e:print(e)returnFalse

pbar.close()returnTruedefDownloadFile(url, name):"""下载文件

:param url:

:param name:

:return:"""

try:

resp= requests.get(url=url, stream=True)

content_size= int(resp.headers['Content-Length']) / 1024with open(name,"wb") as f:print("package total size is:", content_size, 'k,start...')for data in tqdm(iterable=resp.iter_content(1024), total=content_size, unit='k', desc=name):

f.write(data)print("%s 下载成功"%url)returnTrueexceptException as e:print(e)print("%s 下载失败" %url)returnFalse#头部

headers ={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36'}#访问页面

response = requests.get('https://www.ku6.com/detail/371', headers=headers)

data=response.text#构造了一个XPath解析对象并对HTML文本进行自动修正

html =etree.HTML(data)#获取视频播放链接

html_data = html.xpath('//div[@class="r_box"]/ul/li//a/@href')#print("html_data", html_data, type(html_data))

#遍历url

for i inhtml_data:

url= "https://www.ku6.com%s" %iprint(url)#访问url

response_1 = requests.get(url, headers=headers)

data_1=response_1.text#正则匹配视频地址

video = re.findall('type: "video/mp4", src: "(.*?)"',data_1)

video_1=video[0]print("video_1", video_1)

x= video_1.split('/')[-1]#本地保存视频文件名

name = f'{x}.mp4'

print("name", name)#下载视频

download_from_url(video_1, name)#这里只演示第一个视频,直接break

break

View Code

执行代码,效果如下:

python 爬取视频真实地址_python 爬取视频相关推荐

  1. python抓取视频真实地址_快手批量获取真实地址python

    import requests from bs4 import BeautifulSoup import re import xlrd import xlwt class KSNoMark(): # ...

  2. 获取腾讯视频真实地址php源码,腾讯视频的地址解析下载

    提取视频ID 在播放页源码中,可以找到如下视频信息: var VIDEO_INFO = { title: "咱们相爱吧 第1集", duration: "2746&quo ...

  3. 获取腾讯视频真实地址php源码,解析腾讯视频真实地址 - osc_hajrc28s的个人空间 - OSCHINA - 中文开源技术交流社区...

    解析腾讯视频真实地址 标签(空格分隔): php 分析 1 我们从腾讯视频上找到的网页链接格式是这样的 https://v.qq.com/x/page/b0136et5ztz.html vid = b ...

  4. python爬取json简单吗_Python爬取Json数据的示例

    Python教程栏目介绍爬取Json数据实例 相关免费学习推荐:python教程(视频) 本文中以爬取其中的AI流转率数据为例. 该地址返回的响应内容为Json类型,其中红框标记的项即为AI流转率值: ...

  5. python爬取虎扑评论_Python爬取NBA虎扑球员数据

    虎扑是一个认真而有趣的社区,每天有众多JRs在虎扑分享自己对篮球.足球.游戏电竞.运动装备.影视.汽车.数码.情感等一切人和事的见解,热闹.真实.有温度. 受害者地址 https://nba.hupu ...

  6. python爬取网易云音乐_python爬取网易云音乐简单案例

    首先找到想要下载的歌曲表单,例如: 打开推荐 点击推荐的歌曲表单 接下来我们尝试爬取这个表单的全部歌曲名,及歌曲的MP3地址 我使用fiddler4抓包工具抓取相关信息 #encoding=utf8 ...

  7. python爬取新闻存入数据库_python爬取数据存入数据库

    昨天本来写了一篇关于python爬取的文章,结果没通过,正好今天一起吧.用python同时实现爬取,和存入数据库,算是复习一下前面操作数据库的知识. 1.准备工作 既然是爬取,那自然要连接到爬取的页面 ...

  8. python 数据分析 书籍推荐 知乎_Python 爬取知乎 9674 个问答,揭秘最受欢迎的 98 本书!...

    原标题:Python 爬取知乎 9674 个问答,揭秘最受欢迎的 98 本书! 作者 | Yura 责编 | 胡巍巍 高尔基这话有没有道理我不知道, 咱也不敢问, 主要是现在也问不了. 那对我来说,读 ...

  9. python知乎爬虫收藏夹_Python爬取知乎问题收藏夹 爬虫入门

    简介 知乎的网站是比较好爬的,没有复杂的反爬手段,适合初学爬虫的人作为练习 因为刚刚入门python,所以只是先把知乎上热门问题的一些主要信息保存到数据库中,待以后使用这些信息进行数据分析,爬取的网页 ...

最新文章

  1. AIX下RAC搭建 Oracle10G(一)检測系统环境
  2. 修改element默认样式_ggplot2作图:修改主题元素的外观样式(整体修改)
  3. 使用echart的雷达图的时候,如果文字越界的解决办法记录,标签文字自动换行
  4. Visual Studio 起始页中不显示最近使用的项目的解决办法
  5. 单片机拟真电路图软件_电路仿真软件有哪些?6款常用的电路仿真软件推荐
  6. 研究生论文写作心得体会
  7. 春节宅家玩什么?8款小游戏陪你一起过年
  8. BIG-ENDIAN VS LITTLE-ENDIAN
  9. 密钥管理系统研究(一)
  10. Android项目接入魔窗SDK自定义使用
  11. 怎么把win10退回win7系统
  12. iOS-事件响应链、单例模式、工厂模式、观察者模式
  13. 关于uni.appd打包H5 图片在IOS 上不显示的问题
  14. 码距与检错或纠错能力的关系
  15. 高速信号线PCB走线中的阻抗匹配
  16. 2021春招Java面试题大全(精华六)
  17. 【SpringBoot】MultipartFile的transferTo()方法详解
  18. CentOS8服务器时间同步
  19. linux系统玩ps3模拟器下载地址,【RPCS3模拟器】RPCS3模拟器下载(PS3模拟器) 电脑版-开心电玩...
  20. 赵长鹏回复协助洗钱质疑; 欧洲通过区块链监管

热门文章

  1. 医学影像管理系统源码(PACS) PACS源码 PACS系统源码
  2. C++加载lib和dll的方法
  3. 【抽象代数概念速查】Lagrange Interpolation-拉格朗日插值
  4. iOS直播等开源项目地址收藏
  5. 对视频文件进行简单的加密
  6. KITTI下使用SGBM立体匹配算法获得深度图
  7. 梦想在远方,理想在路上
  8. 读书·架构整洁之道(原则篇)
  9. 【平衡二叉樹】超市促銷
  10. 广讯通显示连接服务器失败怎么办,苹果手机连接服务器失败原因