视频会保存在当前文件夹下
引用文章地址
https://blog.csdn.net/Ambulong/article/details/52672384#commentsedit
https://blog.csdn.net/weixin_41607151/article/details/80486964
#coding:utf-8
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0
import time
import json
import sys
import urllib
from urllib import request
from selenium.webdriver.chrome.options import Options
class myvideosave():
"""docstring for myvideosave"""
def __init__(self):
super(myvideosave, self).__init__()
def run(self,url):
chromeOpitons = Options()
#启动 flash
prefs= {
"profile.managed_default_content_settings.images":1,
"profile.content_settings.plugin_whitelist.adobe-flash-player":1,
"profile.content_settings.exceptions.plugins.*,*.per_resource.adobe-flash- player":1,
}
chromeOpitons.add_experimental_option('prefs', prefs)
d = DesiredCapabilities.CHROME
d['loggingPrefs'] = { 'performance':'ALL' }
driver = webdriver.Chrome('chromedriver.exe', desired_capabilities=d,chrome_options=chromeOpitons)
driver.get(url)
#等待视频播放
time.sleep(60)
#获得所有网络请求
lo=driver.get_log('performance')
#聚合 请求分类
datalist={}
for entry in lo:
try:
m=json.loads(entry['message'])['message']["params"]["response"]
k=m['headers']['Content-Type']
url=m['url']
if k not in datalist:
datalist[k]=[url]
else:
datalist[k].append(url)
#print( "-------------------------")
except Exception as e:
continue
#页面存在的 播放过的视频
videolist=[]
filename=""
for x in datalist:
if x.find("video")>-1:
filename=x.replace("video/",".")
videolist=datalist[x]
#保存视频 在当前目录
for x in range(0,len(videolist)):
urllib.request.urlretrieve(videolist[x],str(x)+filename)
#sys.stdout.write 同 print(str(datalist))
sys.stdout.write(str(datalist))
sys.stdout.flush()
#关闭浏览器
driver.quit()
if __name__ == '__main__':
url="http://baishi.baidu.com/watch/0450685864807604970.html?page=videoMultiNeed"
#url="https://www.youtube.com/watch?v=A6m1ToytzF8"
myvideosave().run(url)