我一直在尝试使用python学习网页抓取,现在正在练习下载某个烘焙节目(Anna Olson' s烘焙 - http://www.foodnetwork.ca/shows/bake-with-anna-olson/episode-guide/)的剧集,这些节目从他们的网站流出。看看firebug的网络流量,我发现每个剧集都是以小段的形式下载的,并以m3u8文件开头。 我写了一些代码来下载m3u8文件,然后将每个文件作为文本文件打开并打开并将每个段保存到mp4文件中。完成此操作后,我已经获得了完整大小的视频文件(~144MB),但是当我打开它们时,即使播放器说它们有持续时间,它们也不会播放。
以下是打开每个文本文件的代码部分,从te文件下载网址并将其保存到具有相同名称的mp4文件
import requests
import os
from os.path import isfile, join
folder = r"C:\food\videos\Bake"
files=[f for f in os.listdir(folder) if isfile(join(folder,f))]
for episode in files:
fepisode = open(join(folder,episode), 'r')
urls = [link for link in fepisode.readlines() if link.startswith("http:")]
video_file = open(join(folder,episode.replace("txt","mp4")), "wb")
for url in urls:
video_link = requests.get(url)
if video_link.status_code ==200:
for chunk in video_link.iter_content(100):
video_file.write(chunk)
video_file.close()
以下是其中一个m3u8文件的示例链接:
我试图了解播放视频所需的内容。 感谢
答案 0 :(得分:0)
您是否尝试过requests.get(url, stream=True)
?
另外,试试:
for chunk in video_link.iter_content(chunk_size=100):
if chunk: # filter out keep-alive new chunks
video_file.write(chunk)
video_file.close()