批量下载公众号文章内容/话题/图片/封面/音频/视频,导出html,pdf,excel包含阅读数/点赞数/在看数/留言数/赞赏数
苏生不惑第
384
篇原创文章,将本公众号设为星标
,第一时间看最新文章。
之前发过文章 一键批量下载微信公众号文章内容/图片/封面/视频/音频,支持导出html和pdf格式,包含阅读数/点赞数/在看数/留言数 ,这里再整理更新下。
批量下载公众号文章是通过抓包用python下载的,我之前的文章说过,下载效果:
wechat=pd.read_csv('xxx公众号历史文章.csv',encoding='utf-8')
查看文章总数量:
len(wechat)
查看阅读数总数:
>>> wechat.阅读数.sum()
8191166
文章发布作者前5:
>>> wechat.文章作者.value_counts().sort_values(ascending=False).head(5)
xxx 331
Name: 文章作者, dtype: int64
阅读数10万+文章列表:
>>> wechat[wechat.阅读数>100000]
文章日期 文章标题 文章链接 ... 阅读数 在
看数 点赞数
139 2021-08-08 xxx mp.weixin.qq.com/s... ... 100001
825 1742
[1 rows x 12 columns]
阅读数排行前10的文章:
>>> wechat[['文章日期','文章标题','文章链接','阅读数']].sort_values(by='阅读数', ascending=False).head(10)
阅读数点赞数在看数平均值:
>>> wechat[['阅读数','点赞数','在看数']].mean()
阅读数 24746.725076
点赞数 622.480363
在看数 260.145015
dtype: float64
头条的阅读数点赞数在看数平均值:
>>> wechat[wechat.文章位置 == 1][['阅读数','点赞数','在看数']].mean()
阅读数 28413.407407
点赞数 667.126984
在看数 276.148148
dtype: float64
头条和次条文章数:
wechat.groupby('文章位置',as_index=False).agg({"在看数":'count'}).sort_values(by=['在看数'],ascending=False).head(5)
>>> wechat.文章位置.value_counts().sort_values(ascending=False).head(5)
1 189
2 142
Name: 文章位置, dtype: int64
wechat.query('文章位置 == 2')
原创文章总数:
wechat.groupby('是否原创')['在看数'].count().sort_values(ascending=False).head(5)
wechat.groupby('是否原创').agg({"在看数":'count'}).sort_values(by=['在看数'],ascending=False).head(5)
>>> wechat.是否原创.value_counts().sort_values(ascending=False).head(5)
是 331
Name: 是否原创, dtype: int64
还有评论区的IP归属地分布,我之前文章也分析过微博/公众号/抖音等各大平台都显示 ip 归属地了,能改吗? ,一键批量下载微博评论数据,并分析ip归属地分布
然后是下载的文章内容,包括图片/封面/视频/音频,批量下载图片效果:
下载的图片文件名为文章发布时间加文章标题和数字:
另外每个月我都会更新一次公众号深圳卫健委的封面表情包图,无水印,欢迎收藏 2022 年 9 月公众号深圳卫健委历史文章无水印封面表情包,分享到网盘了,所有封面图的文件名为文章发布日期加标题,方便搜索,在公众号后台发送 封面
获取这个号2019-2021年的所有封面图,2022年结束的时候再下载2022封面图。
import time
import re,os
import requests,json
from bs4 import BeautifulSoup
from pdf2docx import Converter
def to_pdf():
import pdfkit
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)
# htmls += [name for name in files if name.endswith(".html")]
print('导出 word...')
htmls = []
for root, dirs, files in os.walk('.'):
for name in files:
if name.endswith(".pdf"):
print(name)
try:
cv = Converter(name)
cv.convert('word/'+name.replace('.pdf', '')+'.docx')
cv.close()
except Exception as e:
print(e)
# to_word()
然后将转换的pdf合并成一个文件并生成书签 苏生不惑又写了个pdf合并带书签小工具
import logging,os,html
from PyPDF2 import PdfFileReader, PdfFileWriter,PdfFileMerger#pip install PyPDF2
file_writer = PdfFileWriter()
merger = PdfFileMerger()
num = 0
for root, dirs, files in os.walk('.'):
for name in files:
if name.endswith(".pdf"):#glob.glob('*.pdf')
file_reader = PdfFileReader(f"{name}")
file_writer.addBookmark(html.unescape(name).replace('.pdf',''), num, parent=None)
for page in range(file_reader.getNumPages()):
num += 1
file_writer.addPage(file_reader.getPage(page))
with open(r"公众号苏生不惑历史文章合集.pdf",'wb') as f:
file_writer.write(f)
公众号
获取下载地址。
输入公众号文章地址,批量下载文章里的音频效果:
输入话题地址下载效果如图:
下载的文章链接在文件wechat_topic_list.txt,如果第2次下载会跳过已经下载过的文章,效果:
话题里的纯音频也支持下载,这次我用golang重写了golang 开发入门教程,顺便写了个公众号批量下载工具 ,输入话题地址的下载效果如图,990个音频很快就下载完了。
音频地址保存在文件wechat_topic_audio_list.txt ,如果第2次下载也会跳过已经下载过的音频,效果:
最近原创文章:
2022 年 9 月公众号深圳卫健委历史文章无水印封面表情包,分享到网盘了
一键批量下载微信公众号文章内容/图片/封面/视频/音频,支持导出html和pdf格式,包含阅读数/点赞数/在看数/留言数
如果文章对你有帮助还请
点赞/在看/分享
三连支持下, 感谢各位!