Python3.6+selenium+xlwt爬取邮箱内容下载到Excel
需求:需要将邮箱收件箱里面的所有邮件的内容特定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("结果统计完成!!!")