用selenium獲取cookies

前言:因爲登陸反爬措施的愈來愈麻煩,甚至出現了12306這種看圖識物的無敵驗證碼,我只能說,我選擇死亡。這就衍生出了使用selenium來獲取獲取cookies。css

 

 

實例:獲取qq空間cookies,親測成功2018-3-7(注意點:chromedriver.exe的路徑輸入)html

 
  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一保存,至少短時間內是能夠省下登陸的時間。web

改進:(自動填寫帳號密碼)chrome

 1 def get_cookies():
 2     """獲取cookies保存爲txt"""
 3     browser = webdriver.Chrome(executable_path="D:\SeleniumDemo-master\chromedriver.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()
相關文章
相關標籤/搜索