安装好依赖库之后代码可直接运行, captcha = re.search(r'您的验证码为: \*(\w+)\*', response.json()['body']['html'])
正则表达式部分改成自己的。
import random
import requests
import re
from faker import Faker
domain = "https://api.mail.cx/api/v1" # 临时邮箱api
def generate_name():
fake = Faker('en_US')
while True:
name = fake.name().replace(' ', '_')
if len(name) <= 10:
print(f"用户名: {name}")
return name
def getAuth():
url = domain + "/auth/authorize_token"
headers = {
'accept': 'application/json',
'Authorization': 'Bearer undefined',
}
response = requests.post(url, headers=headers)
return str(response.json())
def getMailAddress():
root_mail = ["nqmo.com", "end.tw", "uuf.me", "yzm.de"]
return generate_name() + '@' + random.choice(root_mail)
def getMailId(address, auth):
url = domain + f"/mailbox/{address}"
headers = {
'accept': 'application/json',
'Authorization': f'Bearer {auth}',
}
response = requests.get(url, headers=headers)
body = response.json()
return body[0]['id'] if len(body) and len(body[0]['id']) > 0 else None
def getCaptcha():
# 获取token
auth = getAuth()
print(f"token: {auth}")
# 获取邮箱地址
address = getMailAddress()
print(f"邮箱地址: {address}")
# 等待获取验证码邮件
id_ = None
while id_ is None:
id_ = getMailId(address, auth)
# 获取验证码
url = domain + f'/mailbox/{address}/{id_}'
headers = {
'accept': 'application/json',
'Authorization': f'Bearer {auth}',
}
response = requests.get(url, headers=headers)
# 正则匹配验证码,此处正则表达式匹配验证码改成自己的
captcha = re.search(r'您的验证码为: \*(\w+)\*', response.json()['body']['html'])
if captcha:
print("验证码:", captcha.group(1))
else:
print("找不到验证码")
return captcha.group(1)
if __name__ == '__main__':
getCaptcha()