#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json
import time
import re
import os
def get_video_url(url):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
}
response = requests.get(url,headers=headers)
response.encoding = 'utf-8'
html = response.text
#获取视频id
vid = re.findall('vid: "(.*?)",',html,re.S)[0]
#拼接视频播放页面url
video_url = 'https://h5vv.video.qq.com/getinfo?vids={}&platform=101001&charge=0&otype=json'.format(vid)
#请求视频播放页面
response = requests.get(video_url,headers=headers)
response.encoding = 'utf-8'
#获取视频真实url
j_data = json.loads(response.text[response.text.find('{'):response.text.rfind('}') + 1])
video_urls = j_data['vl']['vi'][0]['ul']['ui'][0]['url']
return video_urls
def download_video(url,name):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36'
}
response = requests.get(url,headers=headers)
#获取文件大小
size = int(response.headers['Content-Length'])
#设置文件大小
count = 0
#设置下载路径
path = 'D:/video/'
#设置文件名
file_name = name + '.mp4'
#拼接文件路径
file_path = path + file_name
#判断文件路径是否存在
if not os.path.exists(path):
os.makedirs(path)
#判断文件是否存在
if not os.path.exists(file_path):
#文件不存在,开始下载
with open(file_path,'wb') as f:
f.write(response.content)
f.flush()
print('文件下载成功')
else:
#文件存在,提示用户
print('文件已存在')
if __name__ == '__main__':
#设置视频链接
url = 'https://v.qq.com/x/page/j3030h2k5j5.html'
#获取视频真实url
video_url = get_video_url(url)
#设置视频名称
name = '微信视频号'
#开始下载视频
download_video(video_url,name)
微信视频号python爬虫
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《微信视频号python爬虫》
文章链接:https://www.gebizhan.com/1734.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
文章名称:《微信视频号python爬虫》
文章链接:https://www.gebizhan.com/1734.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。