zoukankan      html  css  js  c++  java
  • 用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():
     2     browser = webdriver.Chrome(executable_path="D:SeleniumDemo-masterchromedriver.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一保存,至少短期内是可以省下登录的时间。

    改进:(自动填写账号密码)

     1 def get_cookies():
     2     """获取cookies保存为txt"""
     3     browser = webdriver.Chrome(executable_path="D:SeleniumDemo-masterchromedriver.exe")
     4     browser.get("https://user.qzone.qq.com/")
     5 
     6     #input("请登陆后按Enter")
     7     browser.switch_to.frame("login_frame")
     8     button = browser.find_element_by_css_selector('#switcher_plogin')
     9     button.click()
    10     account = browser.find_element_by_css_selector("#u")
    11     account.clear()
    12     account.send_keys("") #此处写账号
    13 
    14     password = browser.find_element_by_css_selector("#p")
    15     password.clear()
    16     password.send_keys("") #此处写密码
    17 
    18     login_button = browser.find_element_by_css_selector("#login_button")
    19     login_button.click()
    20     #print(browser.get_cookies())
    21 
    22     cookie={}
    23     for i in browser.get_cookies():
    24         cookie[i["name"]] = i["value"]
    25     with open("cookies.txt","w") as f:
    26         f.write(json.dumps(cookie))
    27     input()
    28     #browser.close()
  • 相关阅读:
    InnoDB 事务
    InnoDB 索引
    MySQL 8 事务管理、数据库维护、改善性能
    MySQL 7 存储过程、游标、触发器
    MySQL 6 插入数据(INSERT INTOVALUESSELECT FROM)、更新和删除数据(UPDATE SET WHEREDELETE)、创建和操纵表、视图
    MySQL 5 联结表、创建高级联结、组合查询、全文本搜索
    MySQL 4 数据处理函数、汇总数据、分组数据、子查询
    MySQL 3 通配符、正则、计算字段
    MySQL 2 SQL数据使用(检索、排序、过滤:SELECT/FROM/LIMIT/ORDER BY/DESC/WHERE/AND/OR/IN/NOT)
    JavaScript相关-深入理解函数2
  • 原文地址:https://www.cnblogs.com/zenan/p/8522666.html
Copyright © 2011-2022 走看看