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

环境要求

python 3.6

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

# 因为 网易邮箱登录页面账号输入框在 ... 中

# 这里先 跳到 这个 iframe 中

driver.switch_to.frame("x-URS-iframe")

# 根据 name 找到 密码输入框

#

elem = driver.find_element_by_name("password")

# 清空原有内容

elem.clear()

# 填入密码

elem.send_keys("这里是密码")

# 同理填入 账号

elem = driver.find_element_by_name("email")

elem.clear()

elem.send_keys("hbyunan")

# 得到 登录按钮并单击

elem = driver.find_element_by_id("dologin")

elem.click()

# 等待 1s 并判断,是否能离开登录页面,如果能离开说明登录成功

time.sleep(1)

if wait_leave_page(driver, "mail"):

print("登录成功")

save_cookies(driver.get_cookies())

else:

print("登录失败")

if "__main__" == __name__:

login()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值