__ __ _ _ _ ____ ___ __ __
/ /__ || \ // || // // | | || || __ // \
/ / / _ || \// || // \ //___ | __/ || __||/ _ ||__//
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脚本的有序运行
# 登录微信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地址或域名访问网站。这对那些希望扩大公众号数据获取范围并共享数据的人来说,非常有价值。比如,在某公司的一个内部项目中,我们成功部署后,各部门人员就能轻松通过网络查看和分析数据。
我想请教大家,你们是否尝试过进行公众号爬取?欢迎在评论区交流你们的经历。若觉得这篇文章对您有帮助,请点赞并转发。