网站首页 > 开源技术 正文
话不多说,言归正传,直接上步骤:
1 创建新群发
我们选择自建图文
2 搜索目标公众号内的视频的标题
在文章内添加超链接
选择目标公众号
搜索选中目标公众号
搜索公共号内的文章名称
打开开发者工具
选择network,并重新搜索
获取到请求的url
打开url
查看response
我们需要重点关注画红框的部分,在我们之后的会使用到
我们根据上面的请求url变换begin,就可以变换不同的请求,获取不同的文章列表
我们首先定义headers,在请求的时候使用。
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
"Host": "mp.weixin.qq.com",
"Referer": "https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin=0&count=5&fakeid=MjM5MDg5MDY5OQ==&type=9&query=%E9%87%91%E7%93%B6%E6%A2%85&token=1917041231&lang=zh_CN&f=json&ajax=1",
"Cookie": "自己的cookie"
}
其中Referer是目标的url,cookie 是自己的cookie
我们第一点的python代码就是获取文章的名称、url、appmsgid、itemidx四个字段
import requests
import jsonpath
import json
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
"Host": "mp.weixin.qq.com",
"Referer": "https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin=0&count=5&fakeid=MjM5MDg5MDY5OQ==&type=9&query=%E9%87%91%E7%93%B6%E6%A2%85&token=1917041231&lang=zh_CN&f=json&ajax=1",
"Cookie": "自己的cookie"
}
?
def getInfo():
for i in range(4):
# token random 需要要自己的 begin:参数传入
url = "https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin="+str(i * 5)+"&count=5&fakeid=MjM5MDg5MDY5OQ==&type=9&query=%E9%87%91%E7%93%B6%E6%A2%85&token=1917041231&lang=zh_CN&f=json&ajax=1"
response = requests.get(url, headers=headers)
?
jsonRes = response.json()
print(jsonRes)
titleList = jsonpath.jsonpath(jsonRes, "$..title")
urlList = jsonpath.jsonpath(jsonRes, "$..link")
appmsgidList = jsonpath.jsonpath(jsonRes, "$..appmsgid")
itemidxList = jsonpath.jsonpath(jsonRes, "$..itemidx")
print(titleList)
print(urlList)
print(appmsgidList)
print(itemidxList)
# 遍历 构造可存储字符串
for index in range(len(titleList)):
title = titleList[index]
url = urlList[index]
appmsgid = appmsgidList[index]
itemidx = itemidxList[index]
?
scvStr = "%s, %s,\n" % (title, url)
# print(scvStr)
with open("/Users/xxxx/Downloads/info.csv", "a+", encoding="gbk", newline='') as f:
f.write(scvStr)
我们生成了需要的下载列表?:
我们取出其中的一个链接在浏览器打开
http://mp.weixin.qq.com/s?__biz=MjM5MDg5MDY5OQ==&mid=2247491878&idx=5&sn=ce2c259c71be3cdabcafdfd6af18e67e&chksm=a6bf4e8291c8c7944a92b8eed57790651f74669aba216f3f1f15e9e11d3eebbf820efe23fa7a#rd
然后继续打开开发者工具,我们找到下图的url请求:
这就是我们所要请求url,我们查看结果:其中的url就是我们要的视频的链接
假如我们打开的链接是:
http://mpvideo.qpic.cn/0b784eaacaaafiapaprt7zpfbyodahqqaaia.f10003.mp4?dis_k=9413622f256507d5375427b9fb58b16e&dis_t=1591847011
我们打开的时候是网页的形式
我们就拿着这个url下载了
我们需要分析拿到这个url的请求:
我们需要注意的是上面的四个,其中mid和idx 是对应我们在第一步中取出的appmsgid和itemidx,enterid 是进入的时间,所以我们需要知道这个vid是什么?
但是我们不知道这是什么,所以我们就需要将第一步的结果的url请求一次,取出vid,在这里使用的是正则表达式取出来的:
response1 = requests.get(url,headers=headers)
jsonRes1 = response1.text
dirRe = r'wxv_.{19}'
result1 = re.search(dirRe,jsonRes1)
wxv = result1.group(0)
print("wxv ", wxv)
接下来我们就可以拼接视频地址了,请求结果并下载:
def getVideo(video_title, wxv, appmsgid, itemindex):
video_path = '/Users/xxxx/Downloads/videoFiles/' + str(itemindex) + ".mp4"
t = time.time()
# 页面可下载形式
video_url_temp = "https://mp.weixin.qq.com/mp/videoplayer?action=get_mp_video_play_url&preview=0&__biz=MjM5MDg5MDY5OQ==&mid="+str(appmsgid)+"&idx="+str(itemindex)+"&vid="+wxv+"&uin=&key=&pass_ticket=&wxtoken=777&devicetype=&enterid="+str(int(t))+"&appmsg_token=&x5=0&f=json"
print("video_url_temp ", video_url_temp)
response = requests.get(video_url_temp, headers=headers)
content = response.content.decode()
content = json.loads(content)
url_info = content.get("url_info")
video_url2 = url_info[0].get("url")
print(video_url2)
# 请求要下载的url地址
video = requests.get(video_url2)
# content返回的是bytes型也就是二进制的数据。
video = video.content
with open(video_path, 'wb') as f:
f.write(video)
f.flush()
我们最终可以下载成功:
猜你喜欢
- 2024-11-01 零基础学习Opencv-第10节-读写视频
- 2024-11-01 [音视频处理] FFmpeg使用指北1-视频解码
- 2024-11-01 FFmpeg 入门(ffmpeg入门详解音视频原理及应用PDF)
- 2024-11-01 网站放家里,随处看电影「Apache+php+ssl 安装和配置」
- 2024-11-01 ffmpeg+srs实现推流(ffmpeg推流gb28181)
- 2024-11-01 泰捷WE30C升级版电视盒子最真实的评测
- 2024-11-01 ffmpeg、ffprobe、ffplay 常用参数及命令行示例说明
- 2024-11-01 乔家一物 i 400 装机展示(乔家一物 jonsplus)
- 2024-11-01 膨来仙岛丨搞电竞的都是什么成分?
- 2024-11-01 ffmpeg视频直播编解码流程(ffmpeg解码udp视频流接口)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)