700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 超简单的方法找出QQ共同好友

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

时间:2023-05-09 21:30:30

相关推荐

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

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

1. 获取数据

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

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

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

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

<div id="AddrTab" class="addrtab cpright" style="">

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

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

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

2. 数据清洗

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

import reimport 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=".*?@" class="lm_addr" tabindex="0">.*?</a>'compile_re = pile(pattern)# 匹配QQ号用qq_pattern = r'title=".*?@"'qq_re = pile(qq_pattern)# 匹配姓名用name_pattern = r'"lm_addr" tabindex="0">.*?</a>'name_re = pile(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格式文件,不支持导出到xlsxdata.save(file_name + ".xls")

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

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

3. 查找共同好友

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

还是直接上代码

import xlrdfilename_1 = "我的好友.xls"# 我的好友excelfilename_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.nrowslist_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.nrowslist_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个共同好友”。但是这个空间的小秘密是谁发的就很奇怪了(确定不是我俩发的),就随缘吧

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。