成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

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

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

前言

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

接下來以 貓為什么一點也不怕蛇? 回答為例,分享一下整個下載過程。

調試一下

打開 F12, 找到光標,如下圖:

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

然后將光標移動到視頻上。如下圖:

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

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

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

似乎這就是我們要找的視頻,不要著急,讓我們看一看,網頁的請求,然后你會發現一個很有意思的請求(重點來了):

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

讓我們自己看一下數據吧:

{'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': {}}

沒錯了,我們要下載的視頻就在這里面,其中 ld 代表普清,sd 代表標清, hd 代表高清,把相應鏈接再次在瀏覽器打開,然后右鍵保存就可以下載視頻了。

代碼

知道整個流程是什么樣子,接下來擼代碼的過程就簡單了,這里就不過再做過多解釋了,直接上代碼:

# -*- 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('鏈接格式應符合: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('獲取視頻編號異常:{}'.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('清晰度參數異常,僅支持:ld(普清),sd(標清),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())

結語

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

以上就是python 抓取知乎指定回答下視頻的方法的詳細內容,更多關于python 抓取視頻的資料請關注好吧啦網其它相關文章!

標簽: python
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
精品伊人久久久久7777人| 久久综合色8888| 国产性做久久久久久| 国产精品一区二区久激情瑜伽 | 欧美综合视频在线观看| 亚洲一区在线视频观看| 亚洲免费激情| 国产精品久久一级| 午夜日韩视频| 欧美国产欧美综合| 欧美一区亚洲二区| 久久久久国产精品免费免费搜索| 成人精品视频.| 精品久久久久久久久久久院品网 | 视频一区二区三区在线| 毛片一区二区| 天堂成人免费av电影一区| 在线影院国内精品| 麻豆视频一区二区| 在线成人免费视频| 国产中文字幕精品| 91精品国产欧美一区二区18| 国产一区二区精品久久99| 欧美日韩高清影院| 久久福利视频一区二区| 7777精品久久久大香线蕉| 国产精品一级黄| 精品国产一区二区三区久久久蜜月| 99re8在线精品视频免费播放| 久久久精品免费免费| 午夜精品久久久久99热蜜桃导演| 中文字幕av一区二区三区| 国产一区二区三区四区三区四 | 国产高清精品网站| 91精品福利在线一区二区三区| 欧美精品一区二区三区蜜桃视频| 91色视频在线| 国产精品久久久久久久久免费相片 | 99视频一区二区| 欧美国产一区二区在线观看| 亚洲欧洲精品一区二区三区波多野1战4 | 亚洲精品va在线观看| 亚洲一区二区三区四区五区午夜| 午夜伦理一区二区| 欧美日韩一本到| 国产91在线观看丝袜| 久久久99精品久久| 中文一区在线| 精品一区二区三区香蕉蜜桃| 久久色中文字幕| 亚洲三级免费| 日产国产高清一区二区三区| 91精品国产综合久久香蕉的特点 | 91成人看片片| 成人h动漫精品一区二| 国产精品进线69影院| 母乳一区在线观看| 国产精品456露脸| 国产女同性恋一区二区| 性一交一乱一区二区洋洋av| 久草在线在线精品观看| 久久久久国产成人精品亚洲午夜| 亚洲精品国产系列| 蜜桃在线一区二区三区| 亚洲精品在线三区| 日韩网站在线| 精品一区二区三区在线观看国产| 久久久99精品免费观看| 性色一区二区| 成人综合婷婷国产精品久久蜜臀| 中文字幕一区二区三区四区不卡| 久久亚洲综合网| 成人av在线看| 亚洲国产成人av| 欧美成人a视频| 国产欧美日韩亚洲一区二区三区| 国内成+人亚洲+欧美+综合在线| 久久精品视频在线看| 国产精品久久国产愉拍| 国产一区二区看久久| 亚洲国产精品黑人久久久| 免费视频一区二区三区在线观看| 国产91精品久久久久久久网曝门| 亚洲视频免费在线观看| 欧美日韩激情一区| 亚洲午夜视频| 国产美女视频91| 一区二区三区美女| 日韩免费成人网| 亚洲一区影院| 99热精品国产| 日韩精品一区第一页| 久久久国产精品午夜一区ai换脸| 男人的天堂成人在线| av亚洲产国偷v产偷v自拍| 香港成人在线视频| 久久久不卡网国产精品二区| 色屁屁一区二区| 欧美精品二区| 久久精品国产亚洲aⅴ| 国产精品欧美极品| 欧美日韩五月天| 亚洲精品国产系列| av亚洲精华国产精华精| 日本成人在线看| 中文字幕免费一区| 91麻豆精品国产91久久久久| 亚洲一区免费看| 久久综合久久99| 欧美日韩综合一区| 亚洲高清视频一区二区| 成人免费视频视频在线观看免费| 亚洲成人自拍一区| 久久精品在这里| 欧美日韩综合在线| 亚洲深夜影院| 欧美日韩ab| 成人一区二区三区| 免费久久99精品国产| 亚洲免费电影在线| 久久久久久久性| 在线播放中文一区| 久久九九免费| 亚洲国产影院| 91在线码无精品| 狠狠色丁香久久婷婷综合丁香| 国产欧美日韩卡一| 日韩免费性生活视频播放| 欧美中文字幕一区二区三区亚洲| 国内精品国语自产拍在线观看| 国产盗摄女厕一区二区三区| 青青草国产成人av片免费| 亚洲美女屁股眼交| 国产精品视频一二三区 | 在线观看国产91| 一区二区三区久久网| 91蜜桃视频在线| 成人免费视频国产在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲一区二区欧美激情| 亚洲欧洲av在线| 中文字幕乱码一区二区免费| 精品国精品国产| 日韩午夜在线观看视频| 欧美日韩第一区日日骚| 日本乱人伦aⅴ精品| 久久久精品国产一区二区三区| 国产欧美日韩在线播放| 精品动漫av| 午夜精品视频在线观看一区二区| av在线免费不卡| 成人国产精品免费观看| 国产大陆亚洲精品国产| 久久99精品国产.久久久久| 青青国产91久久久久久| 天天色综合天天| 午夜视频在线观看一区二区 | 青青草成人在线观看| 午夜一区二区三区在线观看| 一区二区三国产精华液| 一区二区三区视频在线看| 亚洲色图欧美偷拍| 亚洲视频网在线直播| 中文字幕一区二区三区乱码在线| 国产女人aaa级久久久级| 国产色产综合产在线视频| 日韩一区二区视频在线观看| 欧美日韩一区二区三区免费看| 91精彩视频在线观看| 一本一道综合狠狠老| 欧美在线观看一区二区| 欧美日韩免费不卡视频一区二区三区| 在线免费一区三区| 欧美色欧美亚洲另类二区| 欧美日韩亚洲综合在线 | 国产一区91| 国产精品一国产精品k频道56| 雨宫琴音一区二区在线| 亚洲黄页一区| 亚洲精品乱码| 99日韩精品| 国产精品久久777777毛茸茸| 鲁大师影院一区二区三区| 久久亚洲影院| 色噜噜狠狠成人中文综合 | 精品久久久久久久久久久久久久久 | 中文字幕制服丝袜一区二区三区| 国产精品电影一区二区三区| 亚洲女与黑人做爰| 亚洲国产另类av| 免费观看在线综合| 国产另类ts人妖一区二区| 国产超碰在线一区| caoporm超碰国产精品| 欧美 日韩 国产在线 | av电影在线观看一区| 欧美日韩1080p| 99热精品在线| 一本大道久久a久久精二百| 欧美影视一区在线|