超简单的方法找出QQ共同好友

先说两句废话,今天和小伙伴在看空间的小秘密,惊讶的发现有个共同的小秘密,就想把他找出来hhh,然后就有了这一步

1. 获取数据

先打开网页版的QQ邮箱,并且进入写信界面,然后!!!把右侧好友列表全部展开一遍(否则不会获取好友数据)QQ邮箱写信页面

然后就可以开始获取数据了

①先按下强大的F12,接着选取页面的元素(快捷键Ctrl+Shift+C)

②选中右侧好友列表上方的查找联系人,会跳转到对应的div标签,但我们要的数据在他的上上上级标签里边,就是这个标签↓↓↓

<div id="AddrTab" class="addrtab cpright" style="">
QQ邮箱选取元素页面

③复制这个标签的内容,里边就包含了我们所有的好友数据,随便存到一个txt文件里边就好,接下来用。

这里也给出好友数据所在标签的Xpath路径,会用的小伙伴可以直接用

/html/body/form[2]/div[2]/div[1]/div[4]

2. 数据清洗

这里的清洗很简单,就是把QQ号和备注提取出来存到excel里边,等朋友的excel也准备好了,两个文档查重就找到了共同好友。话不多说直接上代码

import re
import xlwtfile_name = "QQ好友.txt"f = open(file_name, encoding="UTF-8")
text = f.read()# 将数据分行,不然看着难受
split_text = text.split("</div>")# 新建excel文档用于保存
data = xlwt.Workbook(encoding='UTF-8')
sheet = data.add_sheet("qq好友")# 匹配每一个人
pattern = r'title=".*?@qq.com" class="lm_addr" tabindex="0">.*?</a>'
compile_re = re.compile(pattern)# 匹配QQ号用
qq_pattern = r'title=".*?@qq.com"'
qq_re = re.compile(qq_pattern)# 匹配姓名用
name_pattern = r'"lm_addr" tabindex="0">.*?</a>'
name_re = re.compile(name_pattern)# 记录写到第几行了
row = 0# 匹配所有符合正则表达式的内容
for i in split_text:name_list = compile_re.findall(i)if len(name_list) == 1:     # 仅匹配到一个姓名qq = str(qq_re.findall(name_list[0])[0][7:-8])name = str(name_re.findall(name_list[0])[0][23:-4])# 将 < > " & 空格几个转义字符转为原字符,应该还有其他需要转义的字符,这里没考虑name = name.replace("&nbsp;", " ").replace("&lt;", "<").replace("&gt;", ">").replace("&amp;", "&")sheet.write(row, 0, qq)sheet.write(row, 1, name)row = row + 1
# 保存excel文档,选择的包xlwt仅支持xls格式文件,不支持导出到xlsx
data.save(file_name + ".xls")

然后保存的excel是下边这种样式的:

QQ备注
123456789卖女孩的小火柴
12345678容嬷嬷当年也是一枝花
1234567加肥猫
123456我叫抄级学霸
12345老阿姨

到这里自己的好友列表就提取完毕了(可以做个备份hhh)。现在就只差朋友的列表了

3. 查找共同好友

这时候好友的excel也已经发给你了,虽然查重用excel就可以完成,但我还是选择用python装个X

还是直接上代码

import xlrdfilename_1 = "我的好友.xls"     # 我的好友excel
filename_2 = "朋友的好友xls"     # 朋友的好友exceldata_1 = xlrd.open_workbook(filename_1)     # 我的
data_2 = xlrd.open_workbook(filename_2)     # 朋友的
table_1 = data_1.sheet_by_index(0)          # 我的
table_2 = data_2.sheet_by_index(0)          # 朋友的# 我的好友:获取有多少行,然后逐行转换成json数据
rows_1 = table_1.nrows
list_1 = {}
for i in range(0, rows_1):qq_id = table_1.row(i)[0].valueqq_name = table_1.row(i)[1].valuelist_1[qq_id] = qq_name# 朋友的好友:获取有多少行,然后逐行转换成json数据
rows_2 = table_2.nrows
list_2 = {}
for i in range(0, rows_2):qq_id = table_2.row(i)[0].valueqq_name = table_2.row(i)[1].valuelist_2[qq_id] = qq_name# 开始查重
keys_2 = list_2.keys()
for key in list_1.keys():if key in keys_2:print(key)print(list_1[key])print(list_2[key])

这里是直接输出,没有再去保存

然后,就是接着开篇的废话了,我和朋友的共同好友结果很出乎意料,,,,总共输出了两个QQ号:一个是我的,另一个是朋友的。查了一下说QQ会把自己也算在好友列表中,就像是自己加了自己,所以才会出现“你们有1个共同好友”。但是这个空间的小秘密是谁发的就很奇怪了(确定不是我俩发的),就随缘吧

这就是我的办法了,喜欢的朋友不妨仔细看一看,如果有改进的地方,热烈欢迎!
我的,另一个是朋友的。查了一下说QQ会把自己也算在好友列表中,就像是自己加了自己,所以才会出现“你们有1个共同好友”。但是这个空间的小秘密是谁发的就很奇怪了(确定不是我俩发的),就随缘吧

这就是我的办法了,喜欢的朋友不妨仔细看一看,如果有改进的地方,热烈欢迎!

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

我用 Python 爬取微信好友,最后发现一个大秘密

前言 你身处的环境是什么样&#xff0c;你就会成为什么样的人。现在人们日常生活基本上离不开微信&#xff0c;但微信不单单是一个即时通讯软件&#xff0c;微信更像是虚拟的现实世界。你所处的朋友圈是怎么样&#xff0c;慢慢你的思想也会变的怎么样。最近在学习 itchat&#…

用 Python 分析了所有微信好友,发现了一个秘密...

点击上方“何俊林”&#xff0c;马上关注&#xff0c;每天早上8:50准时推送 真爱&#xff0c;请置顶或星标 Illustrations by Evgenij Kungur 文/ Python攻城狮 最近研究了一下itchat和matplotlib&#xff0c;目前实现了对微信好友头像、性别、区域、个性签名的采集及展示。 本…

chatgpt赋能python:Python中画笔放下:掌握Python图形编程

Python 中画笔放下&#xff1a;掌握 Python 图形编程 Python 是一种高级编程语言&#xff0c;广泛应用于数据处理、人工智能、Web 应用程序等领域。除了这些应用外&#xff0c;Python 还可以用于图形编程&#xff0c;包括绘制 2D 和 3D 图形、创建游戏和交互式应用程序等。在 …

使用Python处理PDF文件的简介与实践

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

影驰 H610M 光影 评测

影驰 H610M 光影 针对英特尔 12 代酷睿处理器设计&#xff0c;采用了 H610 芯片组&#xff0c;造型简洁&#xff0c;面向入门级用户推出。影驰 H610M 光影组装电脑怎么搭配更合适这些点很重要http://www.adiannao.cn/du 主板采用 M-ATX 版型&#xff0c;供电部分没有覆盖散热片…

影驰 H610M 光影主板 评测

影驰宣布 H610M 光影主板首发价格为 599 元。这款主板针对英特尔 12 代酷睿处理器设计&#xff0c;采用了 H610 芯片组&#xff0c;造型简洁&#xff0c;面向入门级用户推出。 主板采用 M-ATX 版型&#xff0c;供电部分没有覆盖散热片。产品提供两个内存插槽&#xff0c;支持 D…

影驰gtx960显卡怎么样_影驰gtx960 2g_影驰gtx960 2g跑分

刚到手的二手GTX960影驰虎将跑分 割版的GTX960 2G显卡&#xff0c;游戏性能只是和GTX960/1050相当。如果你只是用来玩网游戏和一般的单机游戏的话&#xff0c;倒是够用&#xff0c; 否则的话&#xff0c;建议购买二手的4G版的GTX960显卡&#xff0c;这样就可以在1080P下玩大多…

starram内存条怎么样_starram内存牌子_星存内存条

我的电脑是星存(StarRam)内存条,512 DDR400 可看网上说有散热片的是假的? 请问是这样的吗? 假的和真的性能差别大不大??前天加了条内存,是黑金刚521 DDR400的, 可是安电脑里就不对了,倒是比以前快了,可是IE总出错,下载东西用迅雷一直自动关闭,重装系统干脆连硬盘都找不到了…

Sequelize:Node.js 中的强大 ORM 框架

❤️砥砺前行&#xff0c;不负余光&#xff0c;永远在路上❤️ 目录 前言优势&#xff1a;提高效率&#xff0c;不用SQL即可完成数据库操作。 那什么是 Sequelize&#xff1f;主要特性&#xff1a;1、模型定义和映射&#xff1a;2、关联和联接&#xff1a;3、事务管理&#xff…

chatgpt赋能python:Python中提取指定元素——一个简单而精细的方法

Python中提取指定元素——一个简单而精细的方法 在网页抓取中&#xff0c;经常需要提取特定元素&#xff0c;例如标题、段落、图片等&#xff0c;以便于后续的数据处理与分析。而Python则是许多工程师在此领域中的首选语言&#xff0c;其灵活的语法和强大的第三方库给爬虫和数…

chatgpt赋能python:Python中用什么表示空格

Python中用什么表示空格 空格在编程中是一个非常重要的概念&#xff0c;特别是在Python中。Python是一门非常灵活的语言&#xff0c;空格是它语法的一个关键组成部分。今天我们将探讨的是Python中用什么表示空格。 空格是Python中的一个重要概念&#xff0c;它被用来表示代码…

制作嵌入式busybox rootfs系统

1、busybox下载 BusyBox 此篇使用版本BusyBox 1.31.1 (stable) 2、设置交叉编译环境变量 source environment-setup-aarch64-poky-linux或者其他架构的编译链工具 3、busybox编译设置 cd busybox-1.31.1 修改根目录Makefile中的CROSS_COMPILE和ARCH参数 比如ARCH ? ar…

玻璃制品行业丨外贸业务管理难点及解决方案

玻璃作为一种重要的建筑材料&#xff0c;在国际贸易中一直占有一定的份额。随着国外市场需求量的不断增加&#xff0c;对玻璃制品的技术含量要求越来越高&#xff0c;需要在研发方面的投入也逐步加大。由于国际市场竞争激烈&#xff0c;想要做玻璃制品行业的外贸公司&#xff0…

如何使用Python自动化测试工具Selenium进行网页自动化?

引言 Selenium是一个流行的Web自动化测试框架&#xff0c;它支持多种编程语言和浏览器&#xff0c;并提供了丰富的API和工具来模拟用户在浏览器中的行为。Selenium可以通过代码驱动浏览器自动化测试流程&#xff0c;包括页面导航、元素查找、数据填充、点击操作等。 与PyAuto…

华为网络设备查询系统时间及修改系统时间命令

查看当前系统时间 dis time all 手动修改系统时间clock datetime 14:25:00 2020-6-19

华为计算产品备件查询助手

华为计算产品备件查询助手 https://support-it.huawei.com/server-spareparts/#/spareparts

华为设备历史200条命令查询方法

有时配置误操作后又执行了很多新命令&#xff0c;需要复查或纠正时无法通过上下键直接翻到之前配置的命令&#xff0c;此时可以使用display history-command all-users 查询最近200条配置的命令&#xff0c;如下图所示&#xff1a;

Windows 查看是否激活

打开cmd 输入【slmgr.vbs /xpr】后按【回车键】 弹出如下对话框表示激活成功

如何查看电脑激活状态

** 如何查看电脑激活状态 ** 1 按下“winr”输入“slmgr.vbs -xpr” 2 点击“确定”。

查询office激活所剩时间

1.找到office安装的根目录 我的路径是C:\Program Files\Microsoft Office\Office16 2、在命令行输入cd C:\Program Files\Microsoft Office\Office16&#xff0c;回车 3、输入cscript ospp.vbs /dstatus&#xff0c;回车 这个时间就是激活剩余时间