电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:8日期: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
相關文章:
主站蜘蛛池模板: 广州监控安装公司_远程监控_安防弱电工程_无线wifi覆盖_泉威安防科技 | 工业用品一站式采购平台|南创工品汇-官网|广州南创 | 广东青藤环境科技有限公司-水质检测| 金属检测机_金属分离器_检针验针机_食品药品金属检探测仪器-广东善安科技 | 南昌旅行社_南昌国际旅行社_南昌国旅在线 | 橡胶膜片,夹布膜片,橡胶隔膜密封,泵阀设备密封膜片-衡水汉丰橡塑科技公司网站 | 高压油管,液压接头,液压附件-烟台市正诚液压附件 | 亮化工程,亮化设计,城市亮化工程,亮化资质合作,长沙亮化照明,杰奥思【官网】 | 高通量组织研磨仪-多样品组织研磨仪-全自动组织研磨仪-研磨者科技(广州)有限公司 | 玉米深加工设备-玉米深加工机械-新型玉米工机械生产厂家-河南粮院机械制造有限公司 | RV减速机-蜗轮蜗杆减速机-洗车机减速机-减速机厂家-艾思捷 | LNG鹤管_内浮盘价格,上装鹤管,装车撬厂家-连云港赛威特机械 | 芜湖厨房设备_芜湖商用厨具_芜湖厨具设备-芜湖鑫环厨具有限公司 控显科技 - 工控一体机、工业显示器、工业平板电脑源头厂家 | 杭州高温泵_热水泵_高温油泵|昆山奥兰克泵业制造有限公司 | 制氮设备_PSA制氮机_激光切割制氮机_氮气机生产厂家-苏州西斯气体设备有限公司 | 旗帜网络笔记-免费领取《旗帜网络笔记》电子书 | 色油机-色母机-失重|称重式混料机-称重机-米重机-拌料机-[东莞同锐机械]精密计量科技制造商 | 锂电池砂磨机|石墨烯砂磨机|碳纳米管砂磨机-常州市奥能达机械设备有限公司 | 除甲醛公司-甲醛检测治理-杭州创绿家环保科技有限公司-室内空气净化十大品牌 | 扫地车厂家-山西洗地机-太原电动扫地车「大同朔州吕梁晋中忻州长治晋城洗地机」山西锦力环保科技有限公司 | 钢板仓,大型钢板仓,钢板库,大型钢板库,粉煤灰钢板仓,螺旋钢板仓,螺旋卷板仓,骨料钢板仓 | 阳光模拟试验箱_高低温试验箱_高低温冲击试验箱_快速温变试验箱|东莞市赛思检测设备有限公司 | 精密模具制造,注塑加工,吹塑和吹瓶加工,EPS泡沫包装生产 - 济南兴田塑胶有限公司 | 爱德华真空泵油/罗茨泵维修,爱发科-比其尔产品供应东莞/杭州/上海等全国各地 | 工业胀紧套_万向节联轴器_链条-规格齐全-型号选购-非标订做-厂家批发价格-上海乙谛精密机械有限公司 | 玄米影院| 【甲方装饰】合肥工装公司-合肥装修设计公司,专业从事安徽办公室、店面、售楼部、餐饮店、厂房装修设计服务 | 扫地车厂家-山西洗地机-太原电动扫地车「大同朔州吕梁晋中忻州长治晋城洗地机」山西锦力环保科技有限公司 | 书信之家_书信标准模板范文大全| 作文导航网_作文之家_满分作文_优秀作文_作文大全_作文素材_最新作文分享发布平台 | 吹田功率计-长创耐压测试仪-深圳市新朗普电子科技有限公司 | 气力输送_输送机械_自动化配料系统_负压吸送_制造主力军江苏高达智能装备有限公司! | 5L旋转蒸发器-20L-50L旋转蒸发器-上海越众仪器设备有限公司 | 郑州外墙清洗_郑州玻璃幕墙清洗_郑州开荒保洁-河南三恒清洗服务有限公司 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 飞扬动力官网-广告公司管理软件,广告公司管理系统,喷绘写真条幅制作管理软件,广告公司ERP系统 | 厚壁钢管-厚壁无缝钢管-小口径厚壁钢管-大口径厚壁钢管 - 聊城宽达钢管有限公司 | 不锈钢反应釜,不锈钢反应釜厂家-价格-威海鑫泰化工机械有限公司 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 深圳3D打印服务-3D打印加工-手板模型加工厂-悟空打印坊 | BAUER减速机|ROSSI-MERSEN熔断器-APTECH调压阀-上海爱泽工业设备有限公司 | 电子元器件呆滞料_元器件临期库存清仓尾料_尾料优选现货采购处理交易商城 |