当前位置: 首页 > 后端技术 > Python

Python爬虫公众号全部资料,并批量下载公众号视频

时间:2023-03-26 01:00:26 Python

之前写过一篇类似的文章:python爬取公众号,最简单的方式,爬虫和同学一直在问,可能会有一些小细节不清楚,这次让我们彻底澄清细节。本文在公众号中添加了批量下载视频的功能,可以完全复制一个公众号,危险动作,请勿操作!谢谢你的主要功能。如何简单爬取微信公众号获取信息:标题、摘要、封面、文章地址,并自动批量下载公众号中的视频。、萌宠日常、熊孩子和萌宠搞笑视频,欢声笑语不断伴随着快乐!请允许我强推一波广告:因为每一个爬虫公众号都是他家的,一年前的,现在还在,换个主题和名字而已。一个喜欢小宠物又养不起猫的码农,下班后看到很开心。你可以关注一下!为了视频的安全和避免丢失,特提醒店主给视频加水印。1.获取公众号信息:标题、摘要、封面、文章URL操作步骤:1.先申请一个公众号2.登录自己的账号,新建文章图,点击超链接3.弹出上搜索框,搜索公众号我需要的,查看历史文章4.通过抓包获取信息,定位到请求的url。通过查看信息,我们找到了我们需要的关键内容:标题、摘要、封面和文章URL。确保这是我们需要的URL。点击下一步,多次获取url发现只有random和bengin的参数发生了变化,所以确定了主要信息url。开始吧:原来我们需要修改的参数是:token、random、cookie这两个值的来源。获取url时,可以#-*-coding:utf-8-*-importreimportrequestsimportjsonpathimportjsonheaders={"User-Agent":"Mozilla/5.0(Macintosh;IntelMacOSX10_13_3)AppleWebKit/537.36(KHTML,比如Gecko)Chrome/67.0.3396.99Safari/537.36","Host":"mp.weixin.qq.com","Referer":"https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit&action=edit&type=10&isMul=1&isNew=1&lang=zh_CN&token=1862390040","Cookie":"你自己获取信息时的cookie"}defgetInfo():foriinrange(80):#tokenrandom需要自己begin:参数传入url="https://mp.weixin.qq.com/cgi-bin/appmsg?token=1904193044&lang=zh_CN&f=json&ajax=1&random=0.9468236563826882&action=list_ex&begin={}&count=5&query=&fakeid=MzI4MzkzMTc3OA%3D%3D&type=9".format(str(i*5))response=requests.get(url,headers=headers)jsonRes=response.json()titleList=jsonpath.jsonpath(jsonRes,"$..title")coverList=jsonpath.jsonpath(jsonRes,"$..cover")urlList=jsonpath.jsonpath(jsonRes,"$..link")#遍历结构为索引存储字符串inrange(len(titleList)):title=titleList[index]cover=coverList[index]url=urlList[索引]scvStr="%s,%s,%s,\n"%(title,cover,url)withopen("info.csv","a+",encoding="gbk",newline='')asf:f.write(scvStr)获取结果(成功):2.获取文章中的视频:实现批量下载通过对单个视频文章的分析,找到这个链接:打开网页发现是视频的网页下载链接:咦,好像有点意思。找到了视频页面的纯下载链接,那就开始吧。发现链接中有一个关键参数vid。不知从何而来?与其他获得的信息无关,只能被逼。该参数在单篇文章的url请求信息中找到,然后获取。response=requests.get(url_wxv,headers=headers)#我用正则,你也可以用xpathjsonRes=response.text#匹配:wxv_1105179750743556096dirRe=r"wxv_.{19}"result=re.search(dirRe,jsonRes)wxv=result.group(0)print(wxv)视频下载:defgetVideo(video_title,url_wxv):video_path='./videoFiles/'+video_title+".mp4"#页面可下载形式video_url_temp="https://mp.weixin.qq.com/mp/videoplayer?action=get_mp_video_play_url&preview=0&__biz=MzI4MzkzMTc3OA==&mid=2247488495&idx=4&vid="+wxvresponse=requests.get(video_url_temp,headers=headers)内容=响应(content.decode)内容=json.loads(content)url_info=content.get("url_info")video_url2=url_info[0].get("url")print(video_url2)#请求下载的url地址html=requests.get(video_url2)#content返回bytes类型,即二进制数据。html=html.contentwithopen(video_path,'wb')asf:f.write(html)然后所有的信息都补齐了,代码组装好了。A。获取信息B.筛选单篇文章信息c.获取视频信息d.拼接视频页面下载URLe,下载视频,保存代码实验结果:获取公众号:标题,摘要,封面,视频,可以说你有一个视频公众号的所有信息都可以复制出来。危险动作,请勿操作!记住!记住!记住!获取代码,请回复公众号:20191210或公众号代码