用selenium获取cookies
前言:由于登录反爬措施的越来越麻烦,甚至出现了12306这种看图识物的无敌验证码,我只能说,我选择死亡。这就衍生出了使用selenium来获取获取cookies。
实例:获取qq空间cookies,亲测成功2018-3-7(注意点:chromedriver.exe的路径输入)
from selenium import webdriver
import requests
import json
import time
1 def get_cookies():
browser = webdriver.Chrome(executable_path="D:\SeleniumDemo-master\chromedriver.exe")
browser.get("https://user.qzone.qq.com/xxx/infocenter")# xxx 改为qq账号
input("请登陆后按Enter")
#print(browser.get_cookies())
cookie={}
for i in browser.get_cookies():
cookie[i["name"]] = i["value"]
with open("cookies.txt","w") as f:
f.write(json.dumps(cookie))
# time.sleep(5)
# button = browser.find_element_by_xpath('//*[@id="switcher_plogin"]')
# button.click() #browser.close()
def get_content():
user_agent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36"
with open("cookies.txt","r")as f:
cookies = f.read()
cookies = json.loads(cookies)
session = requests.session()
html = session.get("https://user.qzone.qq.com/xxx/infocenter",headers={"User-Agent":user_agent},cookies=cookies) # xxx改为qq账号
print(html.text) if __name__ == "__main__":
get_cookies()
get_content()
cookies一保存,至少短期内是可以省下登录的时间。
改进:(自动填写账号密码)
def get_cookies():
"""获取cookies保存为txt"""
browser = webdriver.Chrome(executable_path="D:\SeleniumDemo-master\chromedriver.exe")
browser.get("https://user.qzone.qq.com/") #input("请登陆后按Enter")
browser.switch_to.frame("login_frame")
button = browser.find_element_by_css_selector('#switcher_plogin')
button.click()
account = browser.find_element_by_css_selector("#u")
account.clear()
account.send_keys("") #此处写账号 password = browser.find_element_by_css_selector("#p")
password.clear()
password.send_keys("") #此处写密码 login_button = browser.find_element_by_css_selector("#login_button")
login_button.click()
#print(browser.get_cookies()) cookie={}
for i in browser.get_cookies():
cookie[i["name"]] = i["value"]
with open("cookies.txt","w") as f:
f.write(json.dumps(cookie))
input()
#browser.close()
用selenium获取cookies的更多相关文章
- selenium获取cookies并持久化登陆
selenium获取cookies并持久化登陆 需求背景: 这几天需要写一个接口,用来批量上传数据,最开始考虑的是 UI 自动化,然后选值的时候自动化难以判别,最终选择 接口 自动化. 然后操 ...
- selenium获取百度账户cookies
[效果图] 效果图最后即为获取到的cookies,百度账户的cookies首次获取,需要手动登录,之后就可以注入cookies,实现免密登录. [代码] public class baiduCooki ...
- Selenium 管理 Cookies
使用 Selenium ,还可以方便地对 Cookies 进行操作,例如获取.添加 .删除 Cookies 等 from selenium import webdriver browser = web ...
- selenium操作cookies实现免密登录,自动发微博
一直想用selenium实现个小功能,比如发微博之类的,但是有的网站在登录会有验证码,没想到太好的方法解决,于是想到利用cookies来登录网站 第一步:获取一个可用的cookies,获取的cooki ...
- 微博验证码的识别并登录获取cookies
记得以前微博是用的宫格验证码,现在不一样了,用的是滑块验证码和 点触验证码,每天登陆的第一次基本用的是滑块,继续登录就都用的是点触验证码.所以滑块验证码不写,感兴趣的可以补上. 代码: 这里用的超级鹰 ...
- C# HttpWebRequest获取COOKIES
C# HttpWebRequest获取COOKIES byte[] bytes = Encoding.Default.GetBytes(_post); CookieContainer myCookie ...
- selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口)
网上有很多是selenium基于python来获取两个窗口句柄与切换,本文实现用python+selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口),且在每个窗口下进行一个搜索或翻译,然后截 ...
- selenium获取元素后用click()点击没有作用,用Keys.ENTER就可以成功
selenium获取元素后用click()点击没有作用,用键盘输入enter(Keys.ENTER)就可以成功 #coding = utf-8 from selenium import webdriv ...
- Python网络爬虫笔记(四):使用selenium获取动态加载的内容
(一) 说明 上一篇只能下载一页的数据,第2.3.4....100页的数据没法获取,在上一篇的基础上修改了下,使用selenium去获取所有页的href属性值. 使用selenium去模拟浏览器有点 ...
随机推荐
- assert_param函数的用法
在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用.如果打开任何一个例程中的stm32f10x_conf.h文件,就可以看到实际上assert_param是一个宏定义 ...
- 【强化学习】python 实现 q-learning 例三(例一改写)
本文作者:hhh5460 本文地址:https://www.cnblogs.com/hhh5460/p/10139738.html 例一的代码是函数式编写的,这里用面向对象的方式重新撸了一遍.好处是, ...
- python第二周
第二周,PYTHON图形绘制 一,计算机技术的演进发展 1946-1981.从第一台计算机的诞生到IBM的PC机的出现,我们称之为”计算机系统结构时代“.————这个时代重点在解决计算能力问题 198 ...
- Python从菜鸟到高手(1):初识Python
1 Python简介 1.1 什么是Python Python是一种面向对象的解释型计算机程序设计语言,由荷兰人吉多·范罗苏姆(Guido van Rossum)于1989年发明,第一个公开发行版 ...
- JAVA消息确认机制之ACK模式
JMS API中约定了Client端可以使用四种ACK模式,在javax.jms.Session接口中: AUTO_ACKNOWLEDGE = 1 自动确认 CLIENT_ACKNOWLEDGE ...
- 使用IdentityServer4实现一个简单的Oauth2客户端模式授权
1.首先新建一个webAPI项目做为IdentityServer的服务端,提供生成Token的服务,首先修改Startup.cs文件,如下图: 2.增加一个Config.cs文件,以便于提供资源和认证 ...
- Http指南(1)
网关:是一种特殊的服务器,作为其他服务器的中间实体使用; Agent代理:所有发布web请求的应用程序都是HTTP Agent代理.Web浏览器其实就是一种代理; HTTP报文是在HTTP应用程序之间 ...
- Redis常用操作--------SortedSet(有序集合)
1.ZADD key score member [[score member] [score member] ...] 将一个或多个 member 元素及其 score 值加入到有序集 key 当中. ...
- ecna2017-Game of Throwns
这题就是给你一个标号为0-n-1的环,然后给你M个操作,操作有两种,一种是直接给一个数,这数的正负代表我当前向前(向后)仍了xx个位置的球,或者给你一个撤销操作表示为 undo m,表示撤销最近的M个 ...
- Visual Studio2013安装过程以及单元测试
一.安装环境 操作系统版本:Windows10家庭中文版64位 CPU:i5-4200u 1.60GHz 硬盘内存:750G 二.安装版本 Visual Studio2013 三.安装过程 Visu ...