使用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 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模拟登录网易邮箱网站的更多相关文章
- Python手动构造Cookie模拟登录后获取网站页面内容
最近有个好友让我帮忙爬取个小说,这个小说是前三十章直接可读,后面章节需要充值VIP可见.所以就需要利用VIP账户登录后,构造Cookie,再用Python的获取每章节的url,得到内容后再使用 PyQ ...
- 【Python数据分析】Python模拟登录(一) requests.Session应用
最近由于某些原因,需要用到Python模拟登录网站,但是以前对这块并不了解,而且目标网站的登录方法较为复杂, 所以一下卡在这里了,于是我决定从简单的模拟开始,逐渐深入地研究下这块. 注:本文仅为交流学 ...
- 【py登陆】python模拟登录
用Python模拟登录网站 前面简单提到了 Python 模拟登录的程序,但是没写清楚,这里再补上一个带注释的 Python 模拟登录的示例程序.简单说一下流程:先用cookielib获取cookie ...
- 忘记秘密利用python模拟登录暴力破解秘密
忘记秘密利用python模拟登录暴力破解秘密: #encoding=utf-8 import itertools import string import requests def gen_pwd_f ...
- [Python] Python 模拟登录,并请求
Python 模拟登录,并请求 # encoding: utf- import requests import socket import time socket.setdefaulttimeout( ...
- Python爬虫模拟登录带验证码网站
问题分析: 1.爬取网站时经常会遇到需要登录的问题,这是就需要用到模拟登录的相关方法.python提供了强大的url库,想做到这个并不难.这里以登录学校教务系统为例,做一个简单的例子. 2.首先得明白 ...
- python selenium模拟登录163邮箱和QQ空间
最近在看python网络爬虫,于是我想自己写一个邮箱和QQ空间的自动登录的小程序, 下面以登录163邮箱和QQ空间和为例: 了解到在Web应用中经常会遇到frame/iframe 表单嵌套页面的应用, ...
- [Python] 模拟登录网站(。。为了之后操作数据。。)
我司的内部管理(Web)系统(日报)着实..(mafan).. 所以,就想自己动手增加一下便利性. 计划是, - 桌面程序 用来方便记录(按自己格式,数据随时保存到sqlite中,备用) 通过一览来确 ...
- Python模拟登录实战(一)
今天,学习了模拟登录新浪微博.模拟登录主要有两种方式,一.利用Cookie:二.模仿浏览器的请求,发送表单. 法一: Cookie:指某些网站为了辨别用户身份而储存在用户本地终端上的数据(通常经过加密 ...
随机推荐
- Windows 常用配置 - 启用长路径
Windows 启用长路径支持 打开注册表编辑器:regedit 找到如下路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSyte ...
- 14 微服务电商【黑马乐优商城】:day03-springcloud(Hystix,Feign)
本项目的笔记和资料的Download,请点击这一句话自行获取. day01-springboot(理论篇) :day01-springboot(实践篇) day02-springcloud(理论篇一) ...
- UML- 其他需求制品有哪些?
1.其他需求 补充性规格说明(非功能性需求):性能/稳定性.文档.报表.许可授权等. 词汇表 设想:执行摘要. 业务规则(领域规则):如税法 2.准则 初始阶段无需对其他需求彻底分析.但花费一定时间 ...
- linux 下c 链接so 库
gcc -shared -fPIC -o libname.so *.c //生成so库 gcc main.c -om -Lpath -lname //链接测试so 库 但是生成可执行程序执行时报 ...
- Drools规则引擎详解-常用的drl实例
package droolsDemo //说明:每个 drl 都必须声明一个包名,这个包名与 Java 里面的不同,它不需要与文件夹的层次结构一致, //主要用于可以根据kmodule.xml中不同的 ...
- C#的静态方法和实例化方法的区别
C#的静态方法和实例化方法的区别 在大多数时候,我们写一个方法,会把方法区分为实例化方法和静态方法.而当被问到静态方法和实例化方法的区别的时候,我在写这篇文章的前10分钟,或许我会回答:"静 ...
- python,PyAutoGUI,设置鼠标键盘自动操作
三个文件需在同一个文件夹下面,文件夹的位置无要求. 1.第一个文件,trial.py.python代码调用PyAutoGUI操作鼠标键盘,可以通过修改start_time和end_time来确定程序自 ...
- SwaggerConfig
package me.zhengjie.common.swagger2; import com.google.common.base.Predicates; import org.springfram ...
- day06-迭代器
一.迭代器: 1.可迭代协议:含有__iter__方法. 2.迭代器协议:同时含有__iter__和__next__方法.迭代器是可迭代对象. iterator迭代器. 3.使用可迭代对象有什么好处? ...
- Java常用基本类库总结
1.String成员方法 boolean equals(Object obj);//判断字符串的内容是否相同,区分大小写. boolean equalsIgnoreCase(String str);/ ...