抓取微信好友列表信息

本文实现的是一种较为安全、简洁、高效的抓取微信好友信息的方法。
实现工具:微信pc端、影刀RPA

主要流程:

手动—前期准备,电脑登陆微信,打开联系人页,使得联系人分类“A”显现在微信窗口界面在这里插入图片描述
自动—运行程序:

  1. 利用元素的文本定位到“A”文本框,获取其底部坐标;
  2. 坐标Y轴向下偏移,鼠标左键单击,右边显示出联系人详情(一般是0~60像素,具体范围可利用截图工具获取联系人文本框的高度);
  3. 在详情页获取联系人的信息;
  4. 获取完一个联系人信息后,将获取到的信息写入到数据表格中;
  5. 通过快捷键指令控制键盘“↓”键,单击,跳转下一个联系人详情页,重复3、4步骤;
  6. 通过判断最新抓取的联系人信息和数据表格中的信息是否一致,决定是否跳出循环抓取流程
  7. 待抓取完联系人信息后将数据表格导出Excel表格储存。
    完整程序截图:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    抓取后的数据如下:在这里插入图片描述

关键步骤总结:

  1. 性别男、女、无,通过联系人右边的性别标识图像判断;
  2. 由于微信的联系人是可以备注重复的,所以在判断是否抓取到最后一位时,不能通过简单的联系人字符判断,要多条件判断,文中是将所有字段拼接成字符再判断;
  3. 由于联系人详情页有些信息不一定有,比如地区,典型如企业微信联系人、官方助手等等,这时,就要增加异常判断或者超时判断,文中是忽略抓取,将这些不存在信息设为“无”;
  4. 为了提高抓取效率,文中是抓取相似元素后再处理字符列表,根据详情页的标签:昵称、微信号、地区,定位列表中的联系人信息(标签索引+1)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/188932.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JDK21无法导入TimeUnit类

运行环境:windows11、IDEA2023.1.3、JDK21 问题描述:IDEA中无法导入java.util.concurrent.TimeUnit类。 以下截图是问题解决后的截图。有问题的时候未截图,说明一下,有问题的时候TimeUnit类是红色的,无法导入&#x…

vue3中的provide与inject跨层级组件(祖孙)间通信

provide和inject提供依赖注入,功能类似 vue2.x 的provide/inject 实现跨层级组件(祖孙)间通信 子或孙子组件接收到的数据可以用于读取显示,也可以进行修改,同步修改父(祖)组件的数据。 注意:无论子组件…

python 使用reportlab打造29页图文并茂pdf(全网reportlab最强pdf自动化生成代码)

python 使用reportlab打造29页图文并茂pdf(全网reportlab最强pdf自动化生成代码) 这次项目所使用的代码如果同志们可以灵活使用,基本上可以解决百分之九十以上的pdf模板自动化生成。 最近博主,做了一个项目,使用reportlab制作pd…

程序包不存在

idea2020会有一个小bug&#xff0c;在idea的Settings设置中进行下面配置&#xff1a; 然后在maven项目下的pom.xml中加入如下代码&#xff1a; <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifact…

【Android面试|华为|锁相关】- synchronize(this) 和 synchronize(class)有什么区别

华为面试官问了其中一个问题 Q: synchronize(this) 和 synchronize(class)一样么&#xff1f; 是否可以用synchronize(this) 来锁 A: 当使用 synchronized 加锁 class 时&#xff0c;无论共享一个对象还是创建多个对象&#xff0c;它们用的都是同一把锁&#xff0c;而使用 sync…

【趣味JavaScript】一文让你读懂JavaScript原型对象与原型链的继承,探秘属性的查找机制! 《重置版》

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;web开发者、设计师、技术分享博主 &#x1f40b; 希望大家多多支持一下, 我们一起学习和进步&#xff01;&#x1f604; &#x1f3c5; 如果文章对你有帮助的话&#xff0c;欢迎评论 &#x1f4ac;点赞&a…

Oracle忘记所有密码怎么办

最近遇到一个Oracle的问题&#xff0c;密码要过期了&#xff0c;但是除了用户密码&#xff0c;其他密码都不知道了&#xff0c;修改不了密码怎么办呢&#xff1f; 试了各种方法&#xff0c;最终下面的方式生效了&#xff1a; 首先&#xff0c;使用orapwd生成新的密码文件&…

云计算如何创芯:“逆向工作法”的性感之处

在整个云计算领域&#xff0c;能让芯片规模化的用起来&#xff0c;是决定造芯是否成功的天花板。在拉斯维加斯的亚马逊云科技2023 re:Invent则是完美诠释了这一论调。 亚马逊云科技2023 re:Invent开幕前两个小时&#xff0c;有一场小型的欢迎晚宴&#xff0c;《星期日泰晤士报》…

BUUCTF [GXYCTF2019]SXMgdGhpcyBiYXNlPw== 1

BUUCTF:https://buuoj.cn/challenges 题目描述&#xff1a; 得到的 flag 请包上 flag{} 提交。 密文&#xff1a; 下载附件&#xff0c;解压得到flag.txt文件。 解题思路&#xff1a; 1、打开flag.txt文件&#xff0c;内容如下。 Q2V0dGUgbnVpdCwK SW50ZW5hYmxlIGluc29tbm…

【如何用批处理文件实现自动编译Keil工程和C# Visual Studio工程】

如何用批处理文件实现自动编译Keil工程和C# Visual Studio工程 写个Bat 批处理文件&#xff0c;现自动编译Keil工程和C# Visual Studio工程。这样可以结合Python 实现复杂的操作。 编译Keil工程&#xff1a; echo off set UVC:\Keil_v5\UV4\UV4.exe set UV_PRO_PATHD:\worksp…

React有哪些优化性能的手段?

使用合成事件&#xff1a;React的合成事件系统能够提高性能&#xff0c;因为它使用事件委托&#xff0c;将事件监听器挂载在顶层容器上&#xff0c;而不是每个DOM元素上。减少了事件监听器的数量&#xff0c;从而减小了内存和性能开销。 使用组件级别的shouldComponentUpdate或…

Python编程题集(第三部容器操作 )

Demo61 指定等级 题目描述 读入学生成绩&#xff0c;获取最高分best&#xff0c;然后根据下面的规则赋等级值&#xff1a; &#xff08;1&#xff09;如果分数≥best-10&#xff0c;等级为A &#xff08;1&#xff09;如果分数≥best-20&#xff0c;等级为B &#xff08;1…

常见基础指令【Linux】

目录 一、Linux基本指令1. ls2. pwd3. cd4. touch5. mkdir6. rm和rmdir7. man8. cp9. mv10. cat11. tac12. more13. less14. head15. tail16. date17. cal18. find19. grep20. zip/unzip21. echo22. wc23. tree24. which25. alias26. whoami27. stat28. tar29. uname30. shutdo…

React实现登录授权功能

一、概述 本文将通过React Router & React Redux & Umi.js useModel 实现登录和授权路由功能。 二、技术实现 auth-action-reducer (redux配置) export const Login (username, password) > ({type: login,username: username,password: password }; export con…

vue3+element-plus之el-date-picker日期选择器清空无回调的解决方案

MENU 前言解决htmlJavaScrip 前言 在一个任务列表的搜索栏&#xff0c;添加一个日期区间搜索。使用到element-plus中的日期选择器el-date-picker&#xff1b;el-date-picker本身方法中有change事件&#xff0c;但是清空按钮没有对应回调方法。在任务列表的搜索需求中&#xff0…

如何自定义winform控件,并把它添加到工具箱,供拖动使用

首先&#xff0c;在想要用自定义控件的解决方案中新建一个项目&#xff0c;该项目用来存放所有的自定义控件。 解决方案-右键-添加-新建项目 添加新项目的界面选择Windows窗体控件库&#xff0c;点击确定。 此时&#xff0c;已经添加好了新的项目&#xff0c;默认会有一个自定…

记RocketMQ本地开发环境搭建始末

前言 最近工作中涉及到了RocketMQ的应用&#xff0c;为方便开发决定本地搭建一套RocketMQ的使用环境。 果然实践是个好东西... VMware虚拟环境搭建 这个网上有很多教程&#xff0c;只会比我写的详细有条理&#xff0c;这里就不在赘述了。 虚拟机搭建好之后每次重启电脑都无…

js命名规则

变量和函数命名使用驼峰命名法&#xff08;camelCase&#xff09;&#xff0c;即首字母小写&#xff0c;后续单词首字母大写&#xff0c;例如&#xff1a;myVariable、myFunction。类名使用帕斯卡命名法&#xff08;PascalCase&#xff09;&#xff0c;即每个单词的首字母都大写…

nginx配置反向代理及负载均衡

目录 1.前端发送的请求&#xff0c;是如何请求到后端服务的1.nginx 反向代理的好处&#xff1a;2.nginx 反向代理的配置方式&#xff1a;3. nginx 负载均衡的配置方式 1.前端发送的请求&#xff0c;是如何请求到后端服务的 1.nginx 反向代理的好处&#xff1a; 提高访问速度 因…

分析一段文字中重复词组,英文版

String text " aaaaabbbacccdaaaabbbbccccaaa"; Pattern patten Pattern.compile("[a-zA-Z]"); // 用Pattern类中的matcher()方法,生成一个匹配器对象&#xff0c;Matcher类是匹配器类 String sbstring text.toString(); Matcher matcher patten.ma…