
如何用Python检测微信好友是否删了自己
5星
- 浏览量: 0
- 大小:None
- 文件类型:PDF
简介:
本教程介绍使用Python编写脚本来监测微信好友动态,特别针对自动检测哪些朋友可能删除了自己的方法进行讲解。通过简单的代码实现高效的好友关系维护。
### Python 实现检测微信好友是否删除自己
本段落主要介绍如何利用Python来检测微信中的好友是否已经将你删除了。此方法基于微信网页版接口,通过一系列的网络请求实现登录、获取好友列表及检测好友状态等功能。文中不仅提供了一段完整的示例代码,还对代码进行了详细解释,方便读者理解并根据需求进行调整。
#### 技术要点
1. **登录微信网页版:**
- 使用`urllib2`库发送请求至微信登录接口。
- 获取登录所需的UUID,并显示二维码供用户扫码登录。
- 监听登录状态变化直至登录成功。
2. **获取好友列表:**
- 登录后,发送请求获取好友列表。
- 解析返回的数据,提取每个好友的信息。
3. **检测好友是否删除:**
- 遍历好友列表,发起特定的请求来检查对方是否仍保持好友关系。
- 根据响应判断好友状态。
#### 代码详解
```python
# weixin.py
# coding:utf-8
import os
import urllib, urllib2
import re
import cookielib
import time
import xml.dom.minidom
import json
import sys
import math
```
- **导入模块:** 上述代码导入了实现功能所需的各种Python模块,如`os`用于文件操作,`urllib`用于发送HTTP请求等。
```python
DEBUG = False
MAX_GROUP_NUM = 35 # 每组人数
QRImagePath = os.getcwd() + /qrcode.jpg
tip = 0
uuid =
base_uri =
redirect_uri =
skey =
wxsid =
wxuin =
pass_ticket =
deviceId = e00000000000000
BaseRequest = {}
ContactList = []
My = []
```
- **初始化变量:** 这里定义了一系列全局变量,包括二维码路径、UUID以及后续用于存储会话数据的变量等。
```python
def getUUID():
global uuid
url = https://login.weixin.qq.com/jslogin
params = {
appid: wx782c26e4c19acffb,
fun: new,
lang: zh_CN,
_: int(time.time()),
}
request = urllib2.Request(url=url, data=urllib.urlencode(params))
response = urllib2.urlopen(request)
data = response.read()
regx = rwindow.QRLogin.code=(d+);window.QRLogin.uuid=(S+?);
pm = re.search(regx, data)
code = pm.group(1)
uuid = pm.group(2)
if code == 200:
return True
else:
return False
```
- **获取UUID:** 通过向特定URL发送POST请求,获取用于登录的UUID。
```python
def showQRImage():
global tip, base_uri, redirect_uri
url = https://login.weixin.qq.com/qrcode/ + uuid
params = {
t: webwx,
_: int(time.time()),
}
request = urllib2.Request(url=url, data=urllib.urlencode(params))
response = urllib2.urlopen(request)
tip = 1
f = open(QRImagePath, wb)
f.write(response.read())
f.close()
# 在不同操作系统中打开二维码图片,此处省略具体代码以简化示例
```
- **显示二维码:** 将获取到的二维码保存为图片,并根据不同的操作系统打开该图片。
```python
def waitForLogin():
global tip, base_uri, redirect_uri
url = https://login.weixin.qq.com/cgi-bin/mmwebwx-bin/login?tip=%s&uuid=%s&_=%s % (tip, uuid, int(time.time()))
request = urllib2.Request(url=url)
response = urllib2.urlopen(request)
data = response.read()
regx = rwindow.code=(d+);
pm = re.search(regx, data)
code = pm.group(1)
if code == 201: # 已扫描
print(成功扫描,请在手机上点击确认以登录)
tip = 0
elif code == 200: # 已登录
print(正在登录...)
regx = rwindow.redirect_uri=(\S+);
pm = re.search(regx, data)
redirect_uri = pm.group(1)
base_uri = redirect_uri[:redirect_uri.rfind(/)]
```
- **等待登录:** 检查用户是否完成登录流程,包括扫码确认和登录验证。
以上是
全部评论 (0)


