# getreadingdata **Repository Path**: SawyerJan14/getreadingdata ## Basic Information - **Project Name**: getreadingdata - **Description**: 只需要扫描登录就可以获取今天实时的文章增量 0422-这个需要优化一些,好像公众号的页面现在获取昨日阅读量是获取不到了。目前可执行的方案就是,通过获取目前这条链接的昨日阅读量。来和实时阅读量做差 0423-找到原因了,原来是在获取阅读数据时,区间选择在了,一个月内。需要选昨天。不过其实还是想做0422的那个想法。怎么说呢,数据更全吧。但是对处理压力有点大。需要同时打开50个网页 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-30 - **Last Updated**: 2026-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 微信公众号阅读数据爬虫 一个用于自动获取微信公众号文章阅读数据的爬虫工具,支持获取实时阅读数、昨日阅读数,并自动计算每日阅读增量,无需手动统计,大幅提升公众号运营效率。 ## 功能特点 - 🚀 **自动化登录** - 采用Playwright浏览器持久化上下文,首次登录后缓存凭证,后续运行无需重复扫码,省时省力。 - 📊 **实时数据获取** - 精准抓取公众号已发布文章的当前实时阅读数,数据真实可追溯。 - 📈 **智能增量计算** - 自动匹配昨日阅读数据与实时数据,区分“当日发布文章”与“历史文章”,精准计算每日阅读增量。 - 💾 **便捷数据导出** - 统计结果自动保存为UTF-8编码的CSV文件,支持用Excel、WPS直接打开,便于后续分析。 - ✅ **去重处理** - 基于文章appmsgid和标题双重去重,避免重复统计同一篇文章数据。 - 📋 **美化输出** - 控制台输出格式化表格,清晰展示文章类型、实时阅读、昨日阅读、增量数据,一目了然。 ## 项目结构 ```plain text getreadingdata/ ├── index.py # 主程序(核心逻辑:登录、数据抓取、计算、导出) ├── requirements.txt # 项目依赖清单(一键安装所有依赖) ├── .gitignore # Git忽略文件(自动忽略敏感文件和依赖目录) ├── 文章阅读统计_最终版.csv # 数据导出文件(运行后自动生成) └── wx_login_data/ # 浏览器登录缓存目录(自动创建,存储登录凭证) ``` ## 环境要求 - Python 3.7 及以上版本(推荐3.9+,兼容性更好) - Node.js(Playwright依赖,无需手动操作,安装Playwright时会自动处理) - 微信公众号 **管理员权限**(需扫码登录公众号后台,普通运营者权限可能无法获取数据) - 网络环境稳定(需正常访问微信公众号后台,无需科学上网) ## 安装步骤 请严格按照以下步骤操作,避免出现依赖缺失或驱动安装失败问题。 ### 1. 克隆/下载项目 将项目文件下载到本地,进入项目根目录(getreadingdata/),打开终端或命令提示符。 ### 2. 安装Python依赖 执行以下命令,一键安装所有必需依赖(pandas、playwright、tabulate): ```bash pip install -r requirements.txt ``` 🔔 提示:若出现“pip不是内部或外部命令”,请检查Python环境变量是否配置正确,或使用`python -m pip install -r requirements.txt` 执行。 ### 3. 安装Playwright浏览器驱动 Playwright需要对应浏览器驱动才能运行,执行以下命令安装Chromium驱动(适配微信公众号后台最佳): ```bash playwright install chromium ``` ✅ 安装完成后,驱动会自动关联,无需额外配置。 ## 使用方法 ### 运行爬虫 在项目根目录终端,执行以下命令启动程序: ```bash python index.py ``` ### 完整工作流程 1. **首次运行**:程序自动打开Chromium浏览器,跳转到微信公众号登录页面,手动用微信扫码登录(需公众号管理员微信)。 2. **登录验证**:登录成功后,程序会自动检测登录状态,确认后进入数据抓取环节,无需手动操作。 3. **数据抓取**:依次获取文章实时阅读数据、昨日阅读数据,自动完成去重、合并与增量计算。 4. **结果输出**:控制台会打印格式化表格,展示文章类型、标题、实时阅读数、昨日阅读数、增量/今日阅读量;同时自动生成CSV文件,保存到项目根目录。 5. **后续运行**:再次运行程序时,会复用wx_login_data目录的缓存,无需重复扫码,直接启动抓取流程。 ### 输出数据说明 CSV文件(文章阅读统计_最终版.csv)和控制台表格包含以下核心字段,含义清晰,可直接用于运营分析: |字段名称|说明|补充说明| |---|---|---| |appmsgid|文章唯一标识ID|用于去重,避免同一篇文章重复统计| |标题|公众号文章标题|标题过长时会自动截断(保留前55字+...)| |实时阅读数|文章当前的总阅读量|实时更新,抓取时的最新数据| |发布日期|文章发布的具体日期(格式:YYYY-MM-DD)|用于区分“当日发布”与“历史文章”| |是否当日发布|判断文章是否为当天发布|True=当日发布,False=历史文章| |昨日阅读数|截至昨日的文章总阅读量|历史文章有效,当日发布文章为0| |有效增量|历史文章的今日新增阅读量|实时阅读数 - 昨日阅读数(仅历史文章计算)| |今日阅读量|当日发布文章的实时阅读数|仅当日发布文章有值,历史文章为0| ## 注意事项 **重要提示**:请严格遵守以下规则,避免账号风控或功能异常。 - wx_login_data/ 文件夹包含微信公众号登录凭证(Cookie、缓存等),属于敏感信息,**严禁上传到GitHub、Gitee等公开平台**,项目已配置.gitignore自动忽略该目录。 - 请合理使用爬虫,严格遵守微信公众号平台使用规范,不得用于恶意爬取、批量刷量等违规操作。 - 建议控制爬取频率,程序已默认配置slow_mo=200(延迟200ms),无需额外修改;避免短时间内多次重启程序,防止触发微信风控。 - 若长时间未运行程序,登录凭证可能过期,重新运行程序并扫码登录即可恢复。 - 请勿随意修改index.py中的核心配置(如token获取、URL路径等),否则可能导致数据抓取失败。 - 运行过程中,请勿关闭自动打开的浏览器窗口,否则程序会中断。 ## 技术栈 - **Python**:核心编程语言,简洁高效,易于维护。 - **Playwright**:微软开源的浏览器自动化工具,支持无头模式,适配微信公众号后台的动态渲染页面,比Selenium更稳定。 - **Pandas**:强大的数据处理库,用于数据合并、去重、计算、CSV导出。 - **tabulate**:控制台表格美化工具,让输出数据更清晰易读。 - **re(正则表达式)**:Python内置模块,用于提取URL中的token参数,实现登录后跳转。 ## 常见问题(FAQ) ### Q: 运行程序后,浏览器一直打开,无法自动登录? A: 首次运行必须手动用微信扫码登录(需公众号管理员微信),扫码成功后,程序会自动检测登录状态并继续执行,无需手动点击“登录”按钮。 ### Q: 数据抓取失败,控制台提示“token获取失败”或“无数据”? A: 1. 检查登录状态是否过期,重新运行程序并扫码登录;2. 确认公众号有已发布文章(无文章则无法获取数据);3. 检查网络是否正常,能否正常访问微信公众号后台。 ### Q: 如何修改爬取的文章数量? A: 打开index.py,找到代码中的`list_url = f"https://mp.weixin.qq.com/cgi-bin/appmsgpublish?sub=list&begin=0&count=20&token={token}&lang=zh_CN"`,将`count=20`修改为需要的数量(如count=50,即抓取50篇文章),保存后重新运行程序即可。 ### Q: CSV文件打开后乱码? A: 程序已默认使用UTF-8-sig编码导出CSV,打开时选择“用Excel打开”,或在WPS中选择“数据→导入数据→编码选择UTF-8”,即可正常显示中文。 ### Q: 运行时提示“playwright模块未找到”? A: 未成功安装依赖,重新执行`pip install -r requirements.txt`,确保命令执行无报错;若仍有问题,尝试升级pip后再安装:`pip install --upgrade pip`。 ### Q: 能否设置定时自动抓取? A: 可以。Windows系统可通过“任务计划程序”设置定时运行index.py;Linux/Mac系统可通过crontab设置定时任务,具体可参考定时任务配置教程(需确保环境变量配置正确)。 ## License MIT License 允许个人和商业使用,可自由修改、分发,但需保留原作者版权信息,使用本工具产生的一切责任由使用者自行承担。 ## 免责声明 本工具仅用于学习和研究目的,旨在帮助公众号运营者高效统计阅读数据。使用者需遵守微信公众平台服务协议及相关法律法规,不得用于任何违规、违法用途。若因使用本工具导致公众号账号异常、风控等问题,作者不承担任何责任。 > (注:文档部分内容可能由 AI 生成)