文章一键采集工具(批量下载公众号文章内容有意思文件比html文件大的应用)

优采云 发布时间: 2022-01-04 03:04

  文章一键采集工具(批量下载公众号文章内容有意思文件比html文件大的应用)

  之前分享过,后来发现这个账号的封面真的很有趣,于是批量下载了所有的封面。如有需要,请在公众号后台对话框回复封面,获取所有封面图的网盘地址。

  所有封面图片的文件名都是文章发布日期加标题,方便查找。

  所以顺便研究了一下公众号的内容、图片、视频、音频的批量下载文章。 文章 的内容支持以 HTML 和 pdf 格式导出。以我的公众号为例,一共300多个。文章原创文章,下载即将完成,下载详情请参考前面的文章,如需抢下载官方账号,请微信联系我背景。

  所有生成的历史文章列表pdf文件,包括文章发布时间、文章作者、文章简介和文章链接,我该找哪个文章ctrl+f 搜索打开,比微信搜索方便多了。

  还有markdown格式的文件。

  和excel数据文件(这里是公众号深圳市卫健委数据),包括发布日期、文章标题、文章链接、文章简介、文章作者、阅读数、观看数和点赞数,按文章阅读数排序可以轻松知道哪些文章受欢迎。

  下载的html文件可以用谷歌浏览器打开,即使删除了文章,也可以在本地继续查看。

  使用python脚本批量将html转成pdf文件

  def export_pdf():

import pdfkit,os

print('导出 PDF...')

htmls = []

for root, dirs, files in os.walk('.'):

for name in files:

if name.endswith(".html"):

print(name)

try:

pdfkit.from_file(name, 'pdf/'+name.replace('.html', '')+'.pdf')

except Exception as e:

print(e)

export_pdf()

  转换后的pdf文件比html文件大。

  因为我的文章不发音频,这里举个例子,默默说出这个号码。单个文章的音频可以直接用idm下载。

  音频链接文件格式,可以批量下载音频,定时匹配。

  def audio(res,headers,date,title):

aids = re.findall(r'"voice_id":"(.*?)"',res.text)

time.sleep(2)

tmp = 0

for id in aids:

tmp +=1

url = f'https://res.wx.qq.com/voice/getvoice?mediaid={id}'

audio_data = requests.get(url,headers=headers)

print('正在下载音频:'+title+'.mp3')

with open(date+'___'+title+'___'+str(tmp)+'.mp3','wb') as f:

f.write(audio_data.content)

  批量下载音效:

  下载的音频文件名为文章发布时间+文章title.mp3,也方便查找。

  同样,我的公众号不发视频。在这里,我以这个账户为例。也可以使用 idm 下载单个 文章 视频。

  视频链接也是正规的,也是通过正规匹配批量下载视频:

  def video(res, headers):

vid = re.search(r'wxv_.{19}',res.text).group(0)

time.sleep(2)

if vid:

url = f'https://mp.weixin.qq.com/mp/videoplayer?action=get_mp_video_play_url&preview=0&vid={vid}'

data = requests.get(url,headers=headers).json()

video_url = data['url_info'][0]['url']

video_data = requests.get(video_url,headers=headers)

print('正在下载视频:'+trimName(data['title'])+'.mp4')

with open(trimName(data['title'])+'.mp4','wb') as f:

f.write(video_data.content)

  批量下载视频效果:

  下载的视频如图:

  如果视频号中的视频是在文章中使用的,这个只能单独截取下载。目前还没有研究如何批量下载视频号。下面是前几天西城男孩视频号的视频示例。 , 抓包获取视频下载地址。

  最后说一下文章中图片的批量下载,也就是批量下载正规匹配的图片链接:

  def imgs(content,headers,date,position,title):

imgs=re.findall('data-src="(.*?)"',content)

time.sleep(2)

num = 0

for i in imgs:

num+=1

img_data = requests.get(i,headers=headers)

print('正在下载图片:'+i)

with open(date+'___'+title+'___'+str(position)+'___'+str(num)+'.jpg','wb') as f:

f.write(img_data.content)

  批量下载图片的效果:

  下载的图片文件名是文章发布时间加上文章标题和编号:

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线