一、项目简介

本项目是一个基于影刀RPA(ShadowBot)平台开发的微信公众号文章信息采集工具。该工具能够自动化完成微信公众号后台登录、文章链接提取、文章内容信息采集以及数据导出等一系列操作,有效提高微信公众号文章信息收集与分析的效率。

项目主要功能包括:

  • 自动登录微信公众平台
  • 批量获取公众号文章链接
  • 提取文章标题、作者、发布时间、阅读量等关键信息
  • 将采集数据导出为Excel格式

二、项目结构

xbot_robot/
├── get_posts.py           # 文章信息采集主逻辑
├── imagesV2.xml           # 图片资源配置
├── main.py                # 项目入口文件
├── package.json           # 项目依赖配置
├── package.py             # 包管理
├── process1.py            # 网页初始化与登录流程
├── process2.py            # URL列表获取流程
├── selectorsV2.xml        # UI元素选择器配置
├── settings.json          # 项目设置
└── utils.py               # 工具类与辅助函数

核心文件说明:

  • main.py: 项目入口,负责调用各个流程模块
  • get_posts.py: 实现文章信息抓取和数据导出功能
  • process1.py: 处理网页创建和登录验证
  • process2.py: 负责文章URL的批量获取
  • utils.py: 提供微信窗口管理、剪贴板操作等工具函数

三、项目特点和核心代码

项目特点

  1. 模块化设计:将不同功能拆分为独立流程,便于维护和扩展
  2. UI自动化:通过uiautomation库实现微信客户端的自动化操作
  3. 数据导出:支持将采集结果导出为Excel格式
  4. 错误处理:包含重试机制和异常处理
  5. 可配置性:通过全局变量实现参数灵活配置

核心代码示例

1. 主流程控制 (main.py)
import xbot
import xbot_visual
from . import package
from .package import variables as glv
import time
from xbot import print

def main(args):
    try:
        # 调用流程1: 初始化并登录
        process_result = xbot_visual.process.run(process="process1", package=__name__, inputs={},
            outputs=["web_page"], _block=("main", 1, "调用流程"))
        # 调用流程2: 获取URL列表
        process_result2 = xbot_visual.process.run(process="process2", package=__name__, inputs={},
            outputs=["url_list_output"], _block=("main", 2, "调用流程"))
        # 调用流程3: 获取文章信息
        _ = xbot_visual.process.run(process="get_posts", package=__name__, inputs={
            "url_list": lambda: process_result2.url_list_output,
            }, outputs=[], _block=("main", 3, "调用流程"))
    finally:
        pass
2. 文章信息采集 (get_posts.py)
def get_message(url_list):
    ''' 获取公众号信息
    :params url_list: 微信url列表
    '''
    xbot.logging.info('开始抓取公众号信息')
    # 获取微信对象
    wechat = WEChat()
    # 循环url 获取公众号信息
    for url_ in url_list:
        # 点击搜索按钮并输入URL
        select_win32 = web_page_wechat.Control(Name="点按该按钮可前进...").GetParentControl().GetChildren()[-1].GetChildren()[1]
        select_win32.Click()
        wechat.input_clip.clipboard(win32con.CF_UNICODETEXT, url_)
        select_win32.SendKeys('{Ctrl}a{Del}')
        select_win32.SendKeys('{Ctrl}v{Enter}')
        sleep(2)
        
        # 获取公众号标题、原创状态、发布人等信息
        title = web_page_wechat.TextControl(AutomationId="activity-name").Name
        if web_page_wechat.GroupControl(AutomationId="copyright_logo").Exists(1, 0.5):
            Original = '原创'
        else:
            Original = '不是原创'
        # ...更多信息获取代码
        
        # 写入数据表格
        app.databook.append_row([title, Original, Publisher, ...], 'A')
        
    # 导出数据表格
    app.databook.export_data(fr'{glv["glv_file_folder"]}\公众号信息.xlsx', export_header=True)
3. URL列表获取 (process2.py)
def main(args):
    url_list_output = []
    try:
        # 获取已打开的网页对象
        web_page = xbot_visual.web.get(web_type=glv['glv_web_page_type'], mode="activated", ...)
        
        # 通过点击下一页获取目标数量的url
        while xbot_visual.workflow.test(operand1=True, operator="is true", ...):
            # 获取当前页所有文章链接
            web_element_list = xbot_visual.web.element.get_all_elements(
                browser=web_page, xpath_selector=

四、适用场景

  1. 自媒体运营分析:批量采集竞品公众号文章数据,进行内容分析与竞品对比
  2. 市场调研:收集特定行业公众号文章,分析行业趋势与热点话题
  3. 舆情监控:跟踪特定关键词在公众号文章中的出现情况与情感倾向
  4. 内容归档:自动保存重要公众号的历史文章,建立知识库
  5. 数据分析:获取文章阅读量、点赞数等数据,进行传播效果分析
  6. 竞品分析:对比不同公众号的发文频率、内容风格与用户互动情况
  7. 学术研究:收集特定主题的公众号文章作为研究数据样本
  8. 营销决策:基于文章数据优化内容策略和发布时间选择

五、常见问题与建议

常见问题

  1. 登录失败:微信网页版登录需要扫码验证,确保网络环境稳定且微信客户端已登录
  2. 元素定位失败:UI元素可能随微信版本更新变化,建议定期更新selectorsV2.xml中的选择器
  3. Excel导出错误:检查目标文件夹是否存在读写权限,确保文件未被占用
  4. 采集速度慢:可适当调整sleep时间参数,但过短可能导致页面未加载完成

使用建议

  1. 运行前关闭微信客户端其他窗口,避免干扰UI自动化
  2. 采集大量数据时建议分批次进行,降低被限制风险
  3. 定期备份配置文件和选择器,防止版本更新导致功能异常
  4. 复杂环境下可开启调试日志,便于问题定位

六、源码下载

  1. 通过影刀RPA客户端应用市场获取。
  2. 私聊

七、后续扩展方向

  1. 多平台支持:扩展至今日头条、知乎等其他内容平台的信息采集
  2. AI增强:集成NLP技术实现文章内容自动分类、关键词提取和情感分析
  3. 定时任务:添加Windows任务计划或影刀定时触发器,实现无人值守采集
  4. 数据可视化:增加图表生成功能,直观展示阅读量趋势、热点话题分布
  5. 多账号管理:支持切换不同微信账号进行采集,避免单一账号限制
  6. 反反爬机制:添加IP代理池和随机请求间隔,提高采集稳定性
  7. API接口:开发RESTful接口,允许其他系统调用采集功能
  8. 前端界面:开发Web管理界面,简化配置流程和任务监控
Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐