使用python模拟登录网易邮箱网站

环境要求

  1. python 3.6
  2. chromedriver.exe 文件

人工登录

人工登录某个网站,首先需要用浏览器打开登录页面,然后在输入框中输入对应的账号和密码,最后点击登录,以下使用代码模拟以上过程达到登录效果

代码实现

from selenium import webdriver
import os
from selenium.webdriver.common.keys import Keys
import time
import pickle
import datetime

# 保存 cookie
def save_cookies(cookies):
    pickle.dump(cookies, open(r"D:\zyn\cookies\net\hbyunan.pkl", 'wb'))

# 加载 cookie
def load_cookies(driver):
    cookies = pickle.load(open(r"D:\zyn\cookies\net\hbyunan.pkl", 'rb'))
	 # 这里只将 domain 为 .yeah.net 和 .163.com 的加载进来
    for cookie in cookies:
        if cookie['domain'] == '.yeah.net' and cookie['domain'] == '.163.com':
            driver.add_cookie(cookie)
      
# 判断是否离开了某个页面      
def wait_leave_page(driver, url, max_sec=10):
    time.time()
    startTime = datetime.datetime.now();
    while True:
        if (datetime.datetime.now() - startTime).seconds > max_sec:
            print('超过%d秒,页面没有离开%s' % (max_sec, driver.current_url))
            return False
        if driver.current_url.find(url) != -1:
            return True
        time.sleep(1)


def login():
	# 加载 chrome 的 driver 这里会打开一个谷歌浏览器
	# 注意 chromedriver.exe 文件的路径
    driver = webdriver.Chrome(r"d:\chromedriver.exe")
    # 打开网易邮箱登录页面
    driver.get("http://yeah.net/")
    assert "网易" in driver.title
	# 因为 网易邮箱登录页面账号输入框在