首页/新闻资讯/正文详情

基于Pywinauto实现简陋微信朋友圈爬虫

发布时间:2026/9/26 6:35:00 来源:云帆数科 栏目:资讯中心
基于Pywinauto实现简陋微信朋友圈爬虫
前些天发现了一个人工智能学习网站向大家分享一下。网站链接前言 – 人工智能学习网Python读取微信朋友圈_微信强制访问朋友圈代码-CSDN博客https://blog.csdn.net/oldmao_2001/article/details/119787392参考这位博主的工作我进一步更新了代码。开发环境Windows10Anaconda1.6.3(conda 4.3.30)Jupyter Notebook5.0.0Python3.6.2本工具实现功能自动读取历史微信朋友圈的发布者、点赞者列表、评论列表本工具工作流程1.读取电脑版微信进程号连接此进程#初始化默认进程 PID 0 #我们把进程ID来提供给PyWinAuto 以便于链接微信电脑版 for proc in psutil.process_iter(): try: pinfo proc.as_dict(attrs[pid,name]) except psutil.NoSuchProcess: pass else: if Wechat.exe pinfo[name] or WeChat.exe pinfo[name]: PID pinfo[pid] #PyWinAuto实例化并启动应用 app Application(backenduia).connect(process PID) windows app.windows()2.打开微信电脑版并打开朋友圈(可选)#控制微信电脑版把朋友圈打开 #win app[微信] #win.print_control_identifiers()#以树形方式打印窗口上所有控件 #pyq_but win.child_window(title 朋友圈,control_type Button) #pyq_but.draw_outline() #cords pyq_but.rectangle() #点击朋友圈按钮 #pywinauto.mouse.click(button left,coords (cords.left 10,cords.top 10))2.读取朋友圈窗口内容pyq_win app[朋友圈] pyq_win.draw_outline() pyq_win.set_focus()3.统计窗口内控件数pyq_2pyq_win.child_window(title朋友圈, control_typeList)#pyq_2类型为 pywinauto.application.WindowSpecification,控件类型为ListBox #每条朋友圈信息就是一个pyq_2的一个子控件 pyq_listpyq_2.children(control_typeListItem) countlen(pyq_list)#count记录当前页面朋友圈条数4.循环读取每一个控件的内容pyq_itempyq_2.child_window(control_typeListItem,found_indexk) publisherpyq_item.window_text() newline_index publisher.find(\n)5.拆分出控件内显示的发布者与点赞评论列表信息if newline_index ! -1: publisher publisher[:newline_index-1]#截取冒号之前 file.write(\n发布者:\n) file.write(publisher\n) pyq_comment_listpyq_item.child_window(control_typeText) despyq_item.descendants(control_typeText) file.write(点赞评论列表:\n) for element in des: textelement.window_text() if text!昨天 and text!刚刚 and not text.endswith(前): file.write(text\n)6.翻页for j in range(5): #朋友圈窗口scroll方法无效 pywinauto.keyboard.send_keys({DOWN}) # 向下滑动一次 time.sleep(0.01)注意1. 具体滑动次数根据设备性能和设备设置不同而不同建议使用者根据自己的需求进行修改2.本工具无法保证抓取结果不重复不遗漏未来开发者可进一步开发去重功能3.本工具无法读取微信朋友圈图片内容完整代码如下# -*- coding:utf-8 -*- import psutil import pywinauto import time from IPython.display import clear_output as clear from pywinauto.application import Application psutil 用于获取微信电脑版的进程信息 pywinauto 用于自动化控制微信电脑版 def getWechat(): #初始化默认进程 PID 0 #我们把进程ID来提供给PyWinAuto 以便于链接微信电脑版 for proc in psutil.process_iter(): try: pinfo proc.as_dict(attrs[pid,name]) except psutil.NoSuchProcess: pass else: if Wechat.exe pinfo[name] or WeChat.exe pinfo[name]: PID pinfo[pid] #PyWinAuto实例化并启动应用 app Application(backenduia).connect(process PID) windows app.windows() #控制微信电脑版把朋友圈打开 #win app[微信] #win.print_control_identifiers()#以树形方式打印窗口上所有控件 #pyq_but win.child_window(title 朋友圈,control_type Button) #pyq_but.draw_outline() #cords pyq_but.rectangle() #点击朋友圈按钮 #pywinauto.mouse.click(button left,coords (cords.left 10,cords.top 10)) pyq_win app[朋友圈] pyq_win.draw_outline() pyq_win.set_focus() # 将焦点设置到朋友圈窗口 open(output.txt, w, encodingutf-8) times50# 向下滑动次数 with open(output.txt, w, encodingutf-8) as file: for i in range(times): pyq_2pyq_win.child_window(title朋友圈, control_typeList)#pyq_2类型为pywinauto.application.WindowSpecification,控件类型为ListBox #每条朋友圈信息就是一个pyq_2的一个子控件 pyq_listpyq_2.children(control_typeListItem) countlen(pyq_list)#count记录当前页面朋友圈条数 for k in range(count-1): try: pyq_itempyq_2.child_window(control_typeListItem,found_indexk) publisherpyq_item.window_text() newline_index publisher.find(\n) # 如果找到换行符获取从开头到换行符的内容 if newline_index ! -1: publisher publisher[:newline_index-1]#截取冒号之前 file.write(\n发布者:\n) file.write(publisher\n) pyq_comment_listpyq_item.child_window(control_typeText) despyq_item.descendants(control_typeText) file.write(点赞评论列表:\n) for element in des: textelement.window_text() if text!昨天 and text!刚刚 and not text.endswith(前): file.write(text\n) except: print(读取错误) break for j in range(5): #朋友圈窗口scroll方法无效 pywinauto.keyboard.send_keys({DOWN}) # 向下滑动一次 time.sleep(0.01) # 等待滑动完成 #先扫描当前页面 #一层循环 读取当前页面朋友圈条数读取每一条朋友圈 #二层循环 本条朋友圈内 读取Text子窗口总数读取点赞列表和每一条评论 提取信息输出 #向下滑动 print(输出结束) if __name__ __main__: getWechat()

相关推荐

Flink 系列文章汇总索引
Flink 系列文章汇总索引

最近在研究 AI BI(智能数据分析) 的落地实践。 敬请期待后续专题实战系列:《从零手把手教你搭建 AI 驱动的 BI 系统》,将覆盖 Text2SQL、多轮对话、语义层、权限治理、生产级部署全链路,代码可落地、坑点全复盘。 Fl… · 2026/9/26 6:35:00

产教融合落地路径:工业软件与人工智能如何重塑数智人才培养
产教融合落地路径:工业软件与人工智能如何重塑数智人才培养

1. 数智时代的教育困局与破局思路——为什么产教融合是必然选择1.1 从企业视角看人才缺口到底有多大这几年人工智能的落地速度远超高校课程更新的节奏。我经常和做工业软件、做智能制造的同行聊,大家最头疼的事几乎一致——招不到合适的人。不是说市场上没有人工智能… · 2026/9/26 6:34:54

JVM内存模型:理解Java程序的内存管理_jvm 内存模型,jvm 怎么管理的-CSDN博客
JVM内存模型:理解Java程序的内存管理_jvm 内存模型,jvm 怎么管理的-CSDN博客

首屏导读 本教程配套付费专栏: 大模型工程师修炼手记 19.9 元(AI 编程 / Agent 实战 | 本文同主题系统课程) AI时代程序员的自我提升 49.9 元(AI 时代成长方法论)。 单篇不过瘾?订阅解锁全量源… · 2026/9/26 6:34:54

YOLOv8钢材表面缺陷检测工程实践指南
YOLOv8钢材表面缺陷检测工程实践指南

简介:本资源面向工业视觉检测领域的算法工程师与高校研究者,聚焦钢材表面缺陷的自动化识别与质量管控,提供一套开箱即用的YOLO系列目标检测完整方案。压缩包共2000个文件,含1408个YOLO格式标签(txt)、314张… · 2026/9/26 7:00:38

Altium Designer工程迁移到KiCad的完整技术指南
Altium Designer工程迁移到KiCad的完整技术指南

1. 项目概述:为什么要把AD工程迁入KiCad?这不是“换软件”而是“换思路”我第一次在嘉立创打样时被退回三次,原因全是“封装引脚定义不匹配”——不是画错了,是Altium Designer里用的库和嘉立创BOM系统对不上号。后来发现团队里有… · 2026/9/26 7:00:38

番茄目标检测数据集实战:YOLOv8训练、避坑与产量计数
番茄目标检测数据集实战:YOLOv8训练、避坑与产量计数

简介:这是一套面向农业自动化与智能农业应用的番茄目标检测数据集,覆盖果实成熟度、不同生长阶段及多种光照条件,专为采摘机器人视觉模块、温室生长监测与产量预估而设计,可直接适配YOLOv3/v5/v8/v12等主流检测框架。包内共1792个… · 2026/9/26 7:00:32

AI辅助写作:结构化信息输入如何生成高质量博客
AI辅助写作:结构化信息输入如何生成高质量博客

看起来你还没有提供具体的项目标题和正文内容。请按照下面的格式把信息发给我,我会基于它帮你写出一篇完整的、可直接发布的博主风格文章。项目标题: [你的项目标题] 项目正文: [零散的原始描述,可以是任意领域的内容] 关键词: [关键词1, 关键词2, ...] … · 2026/9/26 7:00:26

如何搭建Claude Code模板体系:从CLAUDE.md到Hooks
如何搭建Claude Code模板体系:从CLAUDE.md到Hooks

最近我把手头几个项目的开发流程重新梳理了一遍,发现真正拉开效率差距的,往往不是某个模型多聪明,而是你怎么把自己项目的规矩、偏好、常用操作,一次性、稳定地传递给AI。这套claude-code-templates,说白了就是把Claud… · 2026/9/26 7:00:25

基于Django与Flask的雪具租赁系统实战:库存、权限与部署
基于Django与Flask的雪具租赁系统实战:库存、权限与部署

1. 项目背景与核心需求拆解:我在雪场蹲了三天才动手滑雪场雪具租赁服务系统这个项目,最早其实是被一线员工“逼”出来的。我在北方一个中型滑雪度假区做技术顾问时发现,租赁部的工作方式还停留在手工台账阶段:上午九点到十一点是取… · 2026/9/26 7:00:25

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介:万常选版《数据库原理与设计》课后习题答案资源,覆盖第2至6章及第9章,适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件,含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故,是很多团队绕不过去的坎。线上环境里,服务端明明已经上线了新版接口,老的移动端还在照着旧文档传参数。请求一到网关,校验直接拒绝,用户操作失败,客服群炸了锅,开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码