用selenium获取cookies

前言:由于登录反爬措施的越来越麻烦,甚至出现了12306这种看图识物的无敌验证码,我只能说,我选择死亡。这就衍生出了使用selenium来获取获取cookies。

实例:获取qq空间cookies,亲测成功2018-3-7

 
  from selenium import webdriver  import requests  import json  import time
 1 def get_cookies():
 2     browser = webdriver.Chrome(executable_path="D:\SeleniumDemo-master\chromedriver.exe")
 3     browser.get("https://user.qzone.qq.com/xxx/infocenter")# xxx 改为qq账号
 4     input("请登陆后按Enter")
 5     #print(browser.get_cookies())
 6     cookie={}
 7     for i in browser.get_cookies():
 8         cookie[i["name"]] = i["value"]
 9     with open("cookies.txt","w") as f:
10         f.write(json.dumps(cookie))
11     # time.sleep(5)
12     # button = browser.find_element_by_xpath(‘//*[@id="switcher_plogin"]‘)
13     # button.click()
14
15     #browser.close()
16 def get_content():
17     user_agent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36"
18     with open("cookies.txt","r")as f:
19         cookies = f.read()
20         cookies = json.loads(cookies)
21     session = requests.session()
22     html = session.get("https://user.qzone.qq.com/xxx/infocenter",headers={"User-Agent":user_agent},cookies=cookies) # xxx改为qq账号
23     print(html.text)
24
25 if __name__ == "__main__":    get_cookies()    get_content()

cookies一保存,至少短期内是可以省下登录的时间。

原文地址:https://www.cnblogs.com/zenan/p/8522666.html

时间: 2024-08-07 11:51:51

用selenium获取cookies的相关文章

selenium获取cookies

<dependency> <groupId>io.appium</groupId> <artifactId>java-client</artifactId> <version>7.0.0</version> </dependency> import java.util.Set; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By

javascript 获取cookies

javascript 获取cookies  function getCookie(name)//取cookies函数            {         var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));         if (arr != null) return unescape(arr[2]); return null; } var xx = ge

selenium 获取table数据

public class Table { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub WebDriver driver = ExplorerBase.IESetting(); String url = "http://zs.njust.edu.cn/newzs/news/zhxw/20140710151805.htm"; driver.m

selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口)

网上有很多是selenium基于python来获取两个窗口句柄与切换,本文实现用python+selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口),且在每个窗口下进行一个搜索或翻译,然后截图. 代码如下: 1 # coding=utf-8 2 from selenium import webdriver 3 import time 4 5 driver = webdriver.Chrome() 6 driver.maximize_window() # 窗口最大化 7 8 driver

PHP CURL获取cookies模拟登录的方法

要提取google搜索的部分数据,发现google对于软件抓取它的数据屏蔽的厉害,以前伪造下 USER-AGENT 就可以抓数据,但是现在却不行了.利用抓包数据发现,Google 判断了 cookies,当你没有cookies的时候,直接返回 302 跳转,而且是连续几十个302跳转,根本抓不了数据. 因此,在发送搜索命令时,需要先提取 cookies 并保存,然后利用保存下来的这个cookies再次发送搜索命令即可正常抓数据了.这其实和论坛的模拟登录一个道理,先POST登录,获取cookies

JSCover+WebDriver/Selenium获取JS代码覆盖率

我们在看JSCover(http://tntim96.github.io/JSCover/manual/manual.xml)介绍及使用说明的时候,往往被图形界面所吸引.这种方式比较适合手工操作,点击和输入即可. 但是这种往往界面和真实界面相差比较大,因为真正的网页在JSCover内部的浏览加载框中.这使得原有的Selenium代码可能存在诸多问题.那么如何能够尽量少地改变原有的selenium代码而又获取到js的code coverage呢?这可以采用文件模式(File Mode). 1. I

Javascript ajax获取cookies

在单页面应用中,有时候需要在服务器中获取cookies, token等等,但是ajax并不获取cookies 和token 这是因为ajax的设计就不是这样用的 不过我们模拟发送http请求 var xhr = ( ( window.XMLHttpRequest && (window.location.protocol !== "file:" || !window.ActiveXObject) ) ? function () { return new window.XM

selenium获取元素后用click()点击没有作用,用Keys.ENTER就可以成功

selenium获取元素后用click()点击没有作用,用键盘输入enter(Keys.ENTER)就可以成功 #coding = utf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox() driver.get("http://www.baidu.com") driver.find_element_by_xpath(&

selenium 代理 Cookies 截图 等待 调用JS

改变用户代理 读取Cookies 调用Java Script Webdriver截图 页面等待 1. 改变用户代理 [java] view plain copy import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver;