python下载包突然卡住_【python】python下载视频为什么会卡?
本帖最后由 神一样了 于 2019-11-16 15:47 编辑
无聊写了个爬虫下载小视频
不知道为什么播放起来有点卡,效果不太理想
发出来希望大家认真学习,解决问题
用到协程增加并发,可以一起研究怎么提高下载速度
依赖requests和gevent库
pip直接安装
import requests
import re
import os
import gevent
from gevent import monkey,pool
gevent.monkey.patch_all()
url="http://www.91mmd.xyz/play?type=ckplayer&linkId=2281571"
headers={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36","connection":"close"}
r=requests.get(url,headers=headers)
m3u8_url=[i for i in re.findall("http.*?index\.m3u8", r.text) if "hls" not in i][0]
r=requests.get(m3u8_url,headers=headers)
video_index=re.sub("index.m3u8",r.text.split("\n")[-1],m3u8_url)
r=requests.get(video_index)
ts_list=[]
for index,ts in enumerate(re.findall('(\w*?\.ts)', r.text)):
ts_list.append((str(index).zfill(5),video_index.replace("index.m3u8", ts)))
a=len(ts_list)
def save_video(ts):
try:
global a
file_name=ts[0]
root = os.getcwd()
if not os.path.exists(root+"/"+file_name):
r = requests.get(url=ts[1], headers=headers,timeout=10)
with open(file_name+".ts", "wb")as f:
f.write(r.content)
a=a-1
print("剩余小视频",a)
except:
print(file_name+" save faild")
def rename(name="爽一下"):
path=os.getcwd()
os.system(f"copy /b *.ts new.tmp")
os.rename("new.tmp", f"{name}.mp4")
os.system('del /Q *.ts')
os.system("exit")
if __name__=="__main__":
pool = gevent.pool.Pool(30)
threads = []
for i in ts_list:
threads.append(pool.spawn(save_video,i))
gevent.joinall(threads)
name=input("重命名:")
if name:
rename(name)
else:
rename()
捕获.PNG (16.48 KB, 下载次数: 0)
2019-11-16 03:33 上传
运行直接IDE或cmd 里python xxx.py
默认名称爽一下
按照建议用ffmpeg来合并视频,果然不卡了,还能快进,开心
改了下合并函数
def rename(name="爽一下"):
*[·-·]:基本就是遍历文件夹里的的ts写到list.txt,把list.txt里的ts合并成MP4,然后删除ts 、list.txt
os.system("(for %a in (*.ts) do @echo file '%a') > list.txt")
os.system(f"ffmpeg -f concat -safe 0 -i list.txt -c copy {name}.mp4")
os.system('del /Q *.ts')
os.system('del /Q list.txt')
os.system("exit")
欢迎大家分享些视频网站来练习
python下载包突然卡住_【python】python下载视频为什么会卡?相关推荐
- python 导入包的路径_关于Python包导入的知识点你知道吗?
使用 from module import * 默认情况下会导入 module 里的所有变量,若你只想从模块中导入其中几个变量,可以在 module 中使用 __all__ 来控制想要被其他模块导入的 ...
- python数据包的作用_使用Python将登录数据包发送到Minecraft服务器不起作用
我在Python中有以下脚本 . 它的作用是尝试连接到MineCraft服务器,首先发送'handshake',然后发送登录请求 . 协议规格可以在这里找到:http://wiki.vg/Protoc ...
- python3.7扩展库是什么_Python3.4以后的版本中,____________库用于安装管理Python扩展包,________________库用于发布Python包。_学小易找答案...
[填空题]Python3.4以后的版本中,____________库用于安装管理Python扩展包,________________库用于发布Python包. [判断题]Directions: The ...
- 飞秋下载2010正式版_飞秋下载
飞秋(FeiQ) V2_FreeEIM4 简体中文绿色正式版 -聊天工具-绿色下载吧 绿_FreeEIM_FreeEIM_FreeEIM 飞秋(FeiQ) V2_FreeEIM4 简体中文绿色正式版 ...
- python调用jar包的模块_使用 Python 的 JPype 模块调用 Jar 包
背景与需求 最近学习并安装使用了HttpRunner框架去尝试做接口测试,并有后续在公司推广的打算. HttpRunner由Python开发,调用接口时需要依赖Python:而大多数公司的扩展工具包使 ...
- python调用默认播放器_用Python批量下载MOOC资源
简介 这是我编写的一个Python脚本,用来批量下载一门MOOC的资源,包括视频.PDF和课程目录. 你是否也曾上MOOC学习过?有没有和我一样遇到这些情况:在线看MOOC视频消耗流量好多,或者浏览器 ...
- python six模块详解_对python中的six.moves模块的下载函数urlretrieve详解
实验环境:windows 7,anaconda 3(python 3.5),tensorflow(gpu/cpu) 函数介绍:所用函数为six.moves下的urllib中的函数,调用如下urllib ...
- python基础知心得总结_【python】基础学习心得总结(一)
本文将简单阐述一些基本的python知识点,大多是本人在学习过程中的心得体会.简单常用的编程概念和思想将不再描述.若有理解错误,还望指正. 一.python运行,调试 python和相关软件可以在官网 ...
- python word2vector 词 财务报告 指数_使用Python可视化Word2vec的结果
作者|Mate Pocs 编译|VK 来源|Towards Data Science Word2vec绝对是我在自然语言处理研究中遇到的最有趣的概念.想象一下,有一种算法可以成功地模拟理解单词的含义及 ...
最新文章
- (C++)1036 跟奥巴马一起编程
- Pytorch学习 - Task5 PyTorch卷积层原理和使用
- 想避免宕机,数据中心运营商还要不断演练实践
- RT-Thread uart串口设备驱动代码结构剖析
- laydate 时间控件去掉秒以及解决在移动端不能滑动的问题
- hadoop fs 基本命令
- sap中查询字段长度_SAP会计科目编码的层级说明
- linux显示3个字符,Linux驱动学习笔记(3)字符设备驱动
- java与tomcat,Centos上安装配置java和tomcat
- python基础:集合(set)
- 案例上手 Python 数据可视化
- 数字图像处理(8):实现FFT快速算法(C语言)
- CentOS 识别NTFS格式U盘
- ChatGPT、文心一言、New Bing到底哪个更AI?
- 2021-2022学年广州市南武中学七年级第一学期期中考试英语试题
- 3.7 Feature envy(依恋情结)
- 根本解决Python2中unicode编码问题
- 成都七中高考成绩2021年查询,2021年成都高考各高中成绩及本科升学率数据排名及分析...
- OrCAD Allegro元器件MYsql数据库管理 教程二
- Delphi中关于DBGrid的DrawDataCell和DrawColumnCell的触发条件