一、实现思路
网页爬取与解析:使用 Python 工具(如 、
selenium 等)访问邮箱网页,并解析页面内容。浏览器自动化:使用
requests 模拟浏览器操作,例如点击全选按钮、删除按钮等。循环处理:由于邮件数量较多,分页处理,逐页执行删除操作。登录邮箱:首先需要登录邮箱,以获取操作权限。
selenium
二、具体过程
1、首先安装Python和pip(步骤省略)
2、设置pip代理:
2.1 使用镜像源
2.1.1、阿里云PyPI镜像:
配置pip使用阿里云的PyPI镜像。你可以通过以下命令来实现:
pip install -i https://mirrors.aliyun.com/pypi/simple/ some-package
或者,如果你想永久性地使用阿里云的镜像,可以配置pip的配置文件:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
2.1.2豆瓣PyPI镜像:
使用豆瓣的PyPI镜像的方法与使用阿里云的类似:
pip install -i https://pypi.doubanio.com/simple/ some-package
或者永久配置:
pip config set global.index-url https://pypi.doubanio.com/simple/
2.2 设置HTTP/HTTPS代理
如果你需要通过HTTP或HTTPS代理来访问外部网络,你可以在pip命令中通过选项来指定代理服务器。例如:
--proxy
pip install some-package –proxy http://proxyserver:port
或者,你也可以在pip的配置文件中设置代理:
打开文件(如果没有这个文件,就创建一个)。
~/.pip/pip.conf
添加或修改以下内容:
[global]
proxy = http://proxyserver:port
如果你需要为HTTPS单独设置代理,可以使用:
[global]
trust_lang = en
proxy = http://proxyserver:port
https-proxy = https://proxyserver:port
3、 安装依赖库:
pip install selenium
如下图:

4、下载 Selenium 的浏览器驱动
根据使用的浏览器选择对应的驱动:
Chrome 需要下载 ChromeDriver。Firefox 需要下载 GeckoDriver。 将驱动程序放在项目目录中,或者设置环境变量。
比如使用谷歌游览器,其版本是: 142.0.7444.163,如下:

ChromeDrive下载地址如下:
https://googlechromelabs.github.io/chrome-for-testing/#stable
选择游览器对应版本的驱动版本:如下图:

将驱动下载解压后,记住路径:
5、编写Python代码 main.py:
driver_path :为上一步驱动exe文件的路径;
登录邮箱:可以选择自动或手动
注意:代码尚未好好打磨,启动时有时会卡住,多执行几次!
from selenium import webdriver
from selenium.common import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
import time
def delete_emails():
# 1. 设置浏览器驱动路径
driver_path = "C://Users//skyable//Downloads//chromedriver-win64//chromedriver.exe" # 替换为你的驱动路径
options = webdriver.ChromeOptions()
options.add_argument("--start-maximized") # 全屏显示浏览器
# 2. 初始化 Selenium 驱动
driver = webdriver.Chrome(executable_path=driver_path, options=options)
# 3. 打开邮箱网页
driver.get("https://exmail.qq.com/cgi-bin/frame_html")
# 4. 登录邮箱(手动或自动输入账号和密码)
# 如果手动登录,则注释掉下面登录相关代码,并手动登录邮箱
# 如果需要自动登录,可以填写以下信息
time.sleep(3)
print("开始点击`其他登录方式`")
try:
other_type_button = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "show_other_panel")))
# other_login_button = driver.find_element(By.CSS_SELECTOR, ".show_other_panel.js_show_other_panel")
other_type_button.click()
time.sleep(2)
print("开始点击`账号密码`")
login_footer_btn = driver.find_element(By.CSS_SELECTOR, ".login_footer_btn.js_show_pwd_panel")
login_footer_btn.click()
except TimeoutException:
print("登录页面加载超时")
driver.quit()
return
time.sleep(2)
print("开始自动输入用户名和密码")
driver.find_element(By.NAME, "inputuin").send_keys("xxxx.cn") # 填写邮箱登录用户名
driver.find_element(By.NAME, "pp").send_keys("xxxx") # 填写邮箱登录用密码
driver.find_element(By.NAME, "btlogin").click()
print("登录成功,等待页面加载")
time.sleep(3)
# 如果手动登录,则需要等待登录完成,按回车键继续
# input("请手动登录邮箱,完成后按回车键继续:")
# 5. 点击进入“收件箱”
inbox_button = driver.find_element(By.ID, "folder_1_td")
inbox_button.click()
# 等待iframe加载完成并切换到iframe
try:
iframe = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "mainFrame"))) # 替换为实际的iframe ID
driver.switch_to.frame(iframe)
except TimeoutException:
print("iframe加载超时")
driver.quit()
return
# 等待页面加载
try:
element = WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.CLASS_NAME, "toarea")))
print("toarea 元素已找到")
except TimeoutException:
print("元素加载超时")
driver.quit()
return
# 6. 循环删除所有邮件
all_emails_deleted = False
while not all_emails_deleted:
try:
# 定位全选按钮
select_all_button = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, "[data-csp-88475e6692c343029fc3c2748a6770b0]")))
# 点击全选按钮
select_all_button.click()
# 点击删除按钮
delete_button = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "quick_del")))
delete_button.click()
# 等待删除确认(这里假设无需手动确认,如果需要确认,请取消注释)
# WebDriverWait(driver, 5).until(EC.alert_is_present())
# alert = driver.switch_to.alert
# alert.accept() # 确认删除
print("删除完成(无需手动确定), 自动刷新页面")
time.sleep(2) # 等待页面加载
# 刷新页面,准备下一页
# driver.refresh()
# time.sleep(2) # 等待页面加载
# 检查是否还有邮件
if "没有邮件" in driver.page_source:
print("所有邮件已删除完毕!")
all_emails_deleted = True
except Exception as e:
print(f"发生错误:{e}")
driver.quit()
delete_emails() # 重新运行函数
# 7. 退出浏览器
driver.quit()
# 调用函数开始删除邮件
delete_emails()
6、执行程序:
Python .main.py
执行打印如下图:

这样页面就会自动删除

直到删除完成:






![[C++探索之旅] 第一部分第十一课:小练习,猜单词 - 鹿快](https://img.lukuai.com/blogimg/20251015/da217e2245754101b3d2ef80869e9de2.jpg)










暂无评论内容