Python3.6+selenium+xlwt爬取邮箱内容下载到Excel

mac2025-08-11  11

需求:需要将邮箱收件箱里面的所有邮件的内容特定copy下来,再通过特定规则整理到一个Excel表格里面。 采用:Python3.6+selenium+xlwt

之前没有用过selenium先了解一下selenium

什么是selenium?

selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Grid)。Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可以用于任何支持JavaScript的浏览器上。

selenium可以模拟真实浏览器,自动化测试工具,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。

selenium的中文官方文档网址: https://selenium-python-zh.readthedocs.io/en/latest/locating-elements.html

用到了Chrome插件,具体Chrome插件再Windows系统和Mac系统中的安装参考:

https://blog.csdn.net/zhangvalue/article/details/102847649   Mac系统的安装放置位置

https://blog.csdn.net/zhangvalue/article/details/102851129    Windows系统中的安装

具体代码如下:

# *===================================* # -*- coding: utf-8 -*- # * Time : 2019/10/31 15:12 # * Author : zhangsf # *===================================* import time import xlwt from selenium import webdriver options = webdriver.ChromeOptions() # options.add_argument("user-data-dir=selenium") chrome = webdriver.Chrome(options=options) url = 'https://xxxxx/' print("-----------------------------Chrome启动--------------------------------") chrome.get(url) time.sleep(3) # 登录 chrome.find_element_by_xpath('//*[@id="xxxxx"]') chrome.find_element_by_name("username").clear() chrome.find_element_by_name("username").send_keys('username') chrome.find_element_by_name("password").clear() chrome.find_element_by_name("password").send_keys("password") chrome.find_element_by_id("btnEnter").click() print("-----------------------------finish login-----------------------------") print(" 获取邮件列表") title = [] user = [] time = [] elements=chrome.find_elements_by_class_name("xxxxx") sent_elements=chrome.find_elements_by_class_name("xxxxx") time_elements=chrome.find_elements_by_class_name("xxxxx") count=0 for e,e_user,e_time in zip(elements,sent_elements,time_elements): print("发件人:"+e_user.text+" "+"------邮件标题: "+e.text +"-----发件时间"+e_time.text) title.append(e.text) user.append(e_user.text) time.append(e_time.text) count=count+1 print("一共获取的邮件数量"+str(count)) print("开始构建Excel表格") myxls = xlwt.Workbook() sheet1 = myxls.add_sheet(u'sheet1', cell_overwrite_ok=True) #先初始化Excel表格的表头的内容 sheet1.write(0, 0, "编号") sheet1.write(0, 1, "发件人") sheet1.write(0, 2, "主题") sheet1.write(0, 3, "发件时间") for i in range(0, len(title)): sheet1.write(i+1, 0, i + 1) sheet1.write(i+1, 1, user[i]) sheet1.write(i+1, 2, title[i]) sheet1.write(i+1, 3, time[i]) myxls.save('E:\\python_file\\web_spider\\demo.xls') print("结果统计完成!!!")

最新回复(0)