微信爬虫工具:weixin-spider实现公众号历史文章、评论、阅读数据抓取与可视化

 __        __       _    _      _      ____  ___       __       __  
        / /__  || \  // ||  //    //   |   | ||   ||  __ //  \
    / / / _  ||  \//  || // \  //___ | __/ || __||/ _ ||__//     
    V  V /  __/ ||  //\  ||//   \//     |     ||/  ||  __/|| \
    _/_/ ___/ || //  \ ||/     /  ___/|     ||__//___/||  \    

公众号文章众多,许多人希望探究其深层内容。公众号爬虫相当于一把“钥匙”,能揭示历史文章、评论、阅读量和点赞数等宝贵信息,然而使用时还需留意不少细节。

环境准备的重要性

运行环境至关重要。就像确保安装了适合的使用环境一样,这一点不容忽视。以x64操作系统为例,还需安装微信PC版等必要软件。此外,开发环境也有特定要求,版本不宜过低。以我们之前的项目为例,有位同事没留意版本问题,配置时经常出错。同时,端口处理需格外小心,若默认端口5000和8080发生冲突或被其他程序占用,应立即进行调整。

基于Python3 ==> flask/mysql/redis/mitmproxy/pywin32等实现
查看及安装依赖文件 requirements.txt
    pip install -r requirements.txt
支持操作系统:Windows10 x64
必备软件:WeChat 微信PC版(非微信网页版)
开发环境:Python3.7(Python3.5+)+ DB(MySQL、redis)

在具体操作时,必须确认MySQL和Redis服务均已启动。我之前在某个小型测试项目中,正是因为疏忽了这一点,导致浪费了大量时间寻找问题。

静态文件解压不容小觑

这一步骤,把dist.rar文件包解压到指定位置,至关重要。解压成功后,会生成几个目录,这些目录对后续操作至关重要。记得在团队项目里,有同事解压时遗漏了一些文件,结果程序运行时总是出现文件缺失的奇怪错误。而且,这个静态文件包中包含了许多关键信息,是整个项目文件体系不可或缺的一部分。

# 创建mysql数据库 weixin_spider  字符集utf8mb4
# cd ./webapp/ 运行models.py 生成数据库表
# 查看表结构是否生成正确

微信账号的选择权衡

登录微信PC版时,使用微信小号或常用账号确实让人感到纠结。对于不太重要的账号,即便面临封禁等风险,也能相对轻松应对。然而,若使用常用账号,则必须更加关注其安全性。我曾目睹有人因使用常用账号进行此类操作而受到警告。但只要操作得当,使用常用账号同样有其便利之处,无需频繁切换账号。

py脚本的有序运行

图片[1]-微信爬虫工具:weixin-spider实现公众号历史文章、评论、阅读数据抓取与可视化-东山笔记

# 登录微信PC版后,找到 文件传输助手 对话框, 双击 文件传输助手 ,文件传输助手会自动弹出单独的对话窗口来,此时及之后就不要关闭了

运行py脚本时,顺序至关重要,且需确保精确无误。每个脚本都肩负着特定任务,若顺序错乱,便可能影响最终效果。记得在学习初期,我曾误将两个脚本的执行顺序颠倒,结果程序无法顺利启动。此外,运行过程中还需关注控制台显示的提示信息,一旦发现错误,应迅速根据提示进行故障排除。

网页端的功能使用

运行 wx_monitor.py
# 运行 manage.py 打开网页 http://127.0.0.1:5000/   
# flask默认开启端口 5000 可自行修改端口, 默认开启debug
# 成功开启web界面后执行以下
# 在当前tools目录内打开cmd窗口(或cmd切换到tools文件目录内)
# 执行 mitmdump -s ./addons.py 开启miltmproxy代理 默认端口 8080
# 出现以下两行,及成功开启,否则核对错误。 当前cmd下ctrl + c可退出mitmproxy代理
# Loading script ./addons.py
# Proxy server listening at http://*:8080
# 打开系统设置,找到网络里的代理,开启使用代理服务器 地址:127.0.0.1 端口:8080 保存

网页端操作中,输入文章链接并添加公众号,或启动、暂停任务,是关键步骤。这是与公众号爬虫直接沟通的方式。在测试阶段,只要正确输入链接,就能获得精确的展示结果。此外,用户可根据需要随时启动或暂停任务,对数据获取过程进行灵活管理。这对那些需关注多个公众号并按需收集数据的人来说,极为便利。

服务器部署的要点

对于项目跑不起来及模块加载有问题或模块不存在的情况,建议使用PyCharm启动项目并运行相关脚本
如果发现公众号只爬取部分,请核对使用的微信号是否关注了该公众号,在关注的前提下使用
建议先通过文章链接加载需要爬取的公众号列表,再按需启动,以免IP限制访问详情导致导入公众号失败

将软件和环境配置到服务器上,得先安装相关软件,然后一步步操作。服务器运行顺畅后,人们就能通过IP地址或域名访问网站。这对那些希望扩大公众号数据获取范围并共享数据的人来说,非常有价值。比如,在某公司的一个内部项目中,我们成功部署后,各部门人员就能轻松通过网络查看和分析数据。

我想请教大家,你们是否尝试过进行公众号爬取?欢迎在评论区交流你们的经历。若觉得这篇文章对您有帮助,请点赞并转发。

© 版权声明
THE END
喜欢就支持一下吧
分享