日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

python 抓取知乎指定回答下視頻的方法

瀏覽:37日期:2022-07-18 08:26:51

前言

現(xiàn)在知乎允許上傳視頻,奈何不能下載視頻,好氣哦,無(wú)奈之下研究一下了,然后擼了代碼,方便下載視頻保存。

接下來(lái)以 貓為什么一點(diǎn)也不怕蛇? 回答為例,分享一下整個(gè)下載過(guò)程。

調(diào)試一下

打開(kāi) F12, 找到光標(biāo),如下圖:

python 抓取知乎指定回答下視頻的方法

然后將光標(biāo)移動(dòng)到視頻上。如下圖:

python 抓取知乎指定回答下視頻的方法

咦這是什么?視野中出現(xiàn)了一條神秘的鏈接: https://www.zhihu.com/video/xxxxx,讓我們將這條鏈接復(fù)制到瀏覽器上,然后打開(kāi):

python 抓取知乎指定回答下視頻的方法

似乎這就是我們要找的視頻,不要著急,讓我們看一看,網(wǎng)頁(yè)的請(qǐng)求,然后你會(huì)發(fā)現(xiàn)一個(gè)很有意思的請(qǐng)求(重點(diǎn)來(lái)了):

python 抓取知乎指定回答下視頻的方法

讓我們自己看一下數(shù)據(jù)吧:

{'playlist': {'ld': {'width': 360,'format': 'mp4','play_url': 'https://vdn.vzuu.com/LD/05fc411e-d8e0-11e8-bb8b-0242ac112a0b.mp4?auth_key=1541477643-0-0-987c2c504d14ab1165ce2ed47759d927&expiration=1541477643&disable_local_cache=1','duration': 17,'size': 1123111,'bitrate': 509,'height': 640},'hd': {'width': 720,'format': 'mp4','play_url': 'https://vdn.vzuu.com/HD/05fc411e-d8e0-11e8-bb8b-0242ac112a0b.mp4?auth_key=1541477643-0-0-8b8024a22a62f097ca31b8b06b7233a1&expiration=1541477643&disable_local_cache=1','duration': 17,'size': 4354364,'bitrate': 1974,'height': 1280},'sd': {'width': 480,'format': 'mp4','play_url': 'https://vdn.vzuu.com/SD/05fc411e-d8e0-11e8-bb8b-0242ac112a0b.mp4?auth_key=1541477643-0-0-5948c2562d817218c9a9fc41abad1df8&expiration=1541477643&disable_local_cache=1','duration': 17,'size': 1920976,'bitrate': 871,'height': 848}},'title': '','duration': 17,'cover_info': {'width': 720,'thumbnail': 'https://pic2.zhimg.com/80/v2-97b9435a0c32d01c7c931bd00120327d_b.jpg','height': 1280},'type': 'video','id': '1039146361396174848','misc_info': {}}

沒(méi)錯(cuò)了,我們要下載的視頻就在這里面,其中 ld 代表普清,sd 代表標(biāo)清, hd 代表高清,把相應(yīng)鏈接再次在瀏覽器打開(kāi),然后右鍵保存就可以下載視頻了。

代碼

知道整個(gè)流程是什么樣子,接下來(lái)擼代碼的過(guò)程就簡(jiǎn)單了,這里就不過(guò)再做過(guò)多解釋了,直接上代碼:

# -*- encoding: utf-8 -*-import reimport requestsimport uuidimport datetimeclass DownloadVideo: __slots__ = [ ’url’, ’video_name’, ’url_format’, ’download_url’, ’video_number’, ’video_api’, ’clarity_list’, ’clarity’ ] def __init__(self, url, clarity=’ld’, video_name=None): self.url = url self.video_name = video_name self.url_format = 'https://www.zhihu.com/question/d+/answer/d+' self.clarity = clarity self.clarity_list = [’ld’, ’sd’, ’hd’] self.video_api = ’https://lens.zhihu.com/api/videos’ def check_url_format(self): pattern = re.compile(self.url_format) matches = re.match(pattern, self.url) if matches is None: raise ValueError('鏈接格式應(yīng)符合:https://www.zhihu.com/question/{number}/answer/{number}' ) return True def get_video_number(self): try: headers = {’User-Agent’:’Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36’ } response = requests.get(self.url, headers=headers) response.encoding = ’utf-8’ html = response.text video_ids = re.findall(r’data-lens-id='(d+)'’, html) if video_ids:video_id_list = list(set([video_id for video_id in video_ids]))self.video_number = video_id_list[0]return self raise ValueError('獲取視頻編號(hào)異常:{}'.format(self.url)) except Exception as e: raise Exception(e) def get_video_url_by_number(self): url = '{}/{}'.format(self.video_api, self.video_number) headers = {} headers[’Referer’] = ’https://v.vzuu.com/video/{}’.format( self.video_number) headers[’Origin’] = ’https://v.vzuu.com’ headers[ ’User-Agent’] = ’Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36’ headers[’Content-Type’] = ’application/json’ try: response = requests.get(url, headers=headers) response_dict = response.json() if self.clarity in response_dict[’playlist’]:self.download_url = response_dict[’playlist’][ self.clarity][’play_url’] else:for clarity in self.clarity_list: if clarity in response_dict[’playlist’]: self.download_url = response_dict[’playlist’][ self.clarity][’play_url’] break return self except Exception as e: raise Exception(e) def get_video_by_video_url(self): response = requests.get(self.download_url) datetime_str = datetime.datetime.now().strftime('%Y-%m-%d %H-%M-%S') if self.video_name is not None: video_name = '{}-{}.mp4'.format(self.video_name, datetime_str) else: video_name = '{}-{}.mp4'.format(str(uuid.uuid1()), datetime_str) path = '{}'.format(video_name) with open(path, ’wb’) as f: f.write(response.content) def download_video(self): if self.clarity not in self.clarity_list: raise ValueError('清晰度參數(shù)異常,僅支持:ld(普清),sd(標(biāo)清),hd(高清)') if self.check_url_format(): return self.get_video_number().get_video_url_by_number().get_video_by_video_url()if __name__ == ’__main__’: a = DownloadVideo(’https://www.zhihu.com/question/53031925/answer/524158069’) print(a.download_video())

結(jié)語(yǔ)

代碼還有優(yōu)化空間,這里面我只是下載了回答中的第一個(gè)視頻,理論上應(yīng)該存在一個(gè)回答下可以有多個(gè)視頻的。如果還有什么疑問(wèn)或者建議,可以多多交流。

以上就是python 抓取知乎指定回答下視頻的方法的詳細(xì)內(nèi)容,更多關(guān)于python 抓取視頻的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: python
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
蜜臀av免费一区二区三区| 91tv亚洲精品香蕉国产一区| 久久婷婷亚洲| 亚洲综合图色| 日韩一二三区在线观看| 日韩视频1区| 亚洲精品激情| 国产乱人伦精品一区| 精品国产不卡一区二区| 国产精品久久久久久久久久10秀| 国产精品7m凸凹视频分类| 欧美一级精品| 欧美在线影院| 久久福利影视| 国产一区 二区| 成人在线免费观看91| 日韩欧美少妇| 亚洲精品中文字幕99999| 色综合视频一区二区三区日韩| 国产精品国产三级在线观看| 黄毛片在线观看| 好看的亚洲午夜视频在线| 亚洲日本国产| 久久69成人| 黄色精品网站| 国产精品黄色片| 中文字幕乱码亚洲无线精品一区| 日本精品国产| 国产拍在线视频| 国产精品美女| 久久成人av| 欧美91精品| 国产亚洲久久| 国产欧美日韩精品一区二区免费 | av中文资源在线资源免费观看| 欧洲精品一区二区三区| 在线一区视频| 精品视频免费| 免费看欧美美女黄的网站| 国产探花在线精品| 神马久久午夜| 亚洲欧美日韩国产综合精品二区| 欧美1区2区3| 午夜欧美视频| 国产精品极品在线观看| 欧美国产偷国产精品三区| 日韩中文欧美在线| 精品午夜av| 亚洲毛片在线免费| 成人看片网站| 国产精品成人自拍| 九九久久婷婷| 成人日韩av| 亚洲精品自拍| 婷婷亚洲五月色综合| 久久久国产精品网站| 国产亚洲精品久久久久婷婷瑜伽| 精品五月天堂| 日韩va欧美va亚洲va久久| 亚洲午夜黄色| 蜜桃视频一区二区| 欧美理论视频| av资源亚洲| 国产麻豆一区二区三区 | 久久精品国产大片免费观看| 国产欧美一级| 视频一区视频二区中文| 久久久国产精品一区二区中文| 国产精品一卡| 四虎精品一区二区免费| 九一精品国产| 日韩电影免费网址| 久久成人高清| 中文一区二区| 999国产精品999久久久久久| 国产在线不卡一区二区三区| 日韩av一区二区三区四区| 视频在线观看一区| 亚洲免费婷婷| 亚洲激情另类| 亚洲精品网址| 久久久久免费av| 日本免费久久| 成人在线视频区| 免费精品一区| 你懂的国产精品| 久久国产精品色av免费看| 亚洲v天堂v手机在线| 黑人精品一区| 日韩精品视频网站| 最近国产精品视频| 亚洲另类黄色| 精品日韩一区| 国产三级精品三级在线观看国产| 亚洲欧美一级| 日韩欧美在线精品| 日韩有码av| 天堂久久一区| 日韩av不卡一区二区| 奇米狠狠一区二区三区| 日韩国产欧美在线视频| 欧美日韩午夜| 久久av资源| 国产福利电影在线播放| 国产欧美一区| 精品久久97| 伊伊综合在线| 亚洲国产成人精品女人| 老司机精品久久| 在线观看亚洲精品福利片| 午夜精品福利影院| 久久a爱视频| а√天堂中文在线资源8| 国产亚洲一区二区手机在线观看| 亚洲天堂久久| 亚洲午夜国产成人| 国产精品白丝一区二区三区| 成人国产综合| 在线日韩av| 自拍日韩欧美| 亚洲精品免费观看| 久久一区视频| av在线日韩| 亚洲一区区二区| 日本成人在线视频网站| 国产美女久久| 福利在线免费视频| 午夜国产精品视频免费体验区| 免费不卡在线观看| 国产精品视频首页| 日韩免费一区| 在线视频亚洲欧美中文| 国产亚洲一区二区三区啪| 国模精品一区| 日韩国产一区二区| 999在线观看精品免费不卡网站| 日韩毛片一区| 亚洲综合电影| 中文精品电影| 精品国产成人| 久久夜色精品| 精品视频免费| 99在线观看免费视频精品观看| 91精品一区| 欧美日韩精品免费观看视欧美高清免费大片 | 色爱综合网欧美| 婷婷亚洲五月| 中文字幕中文字幕精品| 精品视频自拍| 国产精品婷婷| 国产精品一区二区av交换 | 在线一区视频观看| 亚洲精选成人| 中文在线资源| 日韩黄色av| 久久中文字幕二区| 国产精品免费精品自在线观看| 99久精品视频在线观看视频| 色综合视频一区二区三区日韩 | 亚洲精品人人| 国产成人精选| 日韩激情一区二区| 欧美日韩激情| 日韩av免费大片| 人人爱人人干婷婷丁香亚洲| 日韩一区二区三区在线免费观看| 日韩av中文在线观看| 亚洲一级二级| 免费一级欧美在线观看视频| 欧美中文日韩| 99久久夜色精品国产亚洲狼 | 久久国产日本精品| 奇米色欧美一区二区三区| 欧美日韩中文字幕一区二区三区| 国产精品香蕉| 伊人成人网在线看| 播放一区二区| 欧美激情麻豆| 国产丝袜一区| 亚洲专区视频| 久久xxxx| 自由日本语亚洲人高潮| 亚洲va中文在线播放免费| 麻豆91精品视频| 国产日韩一区| 婷婷视频一区二区三区| 久久蜜桃资源一区二区老牛| 精品视频在线一区二区在线| 亚洲精品女人| 国产精品外国| 婷婷综合五月| 91精品啪在线观看国产18 | 日本午夜精品| 视频一区二区三区在线| 国精品一区二区| 亚洲一级网站| 欧美成人午夜| 久久精品91| 亚洲v在线看| 成人亚洲一区|