from selenium import webdriver
import os
import time
import json
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.keys import Keys
def browser_initial():
#进行浏览器初始化
os.chdir('D:\phyton\上课\p1\cookies')
browser = webdriver.Chrome()
log_url = 'https://passport.csdn.net/login?code=public'
return log_url, browser
def get_cookies(log_url, browser):
#获取cookies保存至本地
browser.get(log_url)
time.sleep(15) # 进行登录
WebDriverWait(browser, 20).until(
lambda x: x.find_element_by_xpath('//*[@id="app"]/div/div/div[1]/div[2]/div[5]/ul/li[2]/a')).send_keys(
Keys.ENTER)
WebDriverWait(browser, 20).until(lambda x: x.find_element_by_id("all")).clear()
WebDriverWait(browser, 20).until(lambda x: x.find_element_by_id("all")).send_keys('**********')
WebDriverWait(browser, 20).until(lambda x: x.find_element_by_id("password-number")).clear()
WebDriverWait(browser, 20).until(lambda x: x.find_element_by_id("password-number")).send_keys('*******')
WebDriverWait(browser, 20).until(lambda x: x.find_element_by_id("password-number")).send_keys(Keys.ENTER)
# 正常 打开之后,找到输入消息框。然后输入内容
dictCookies = browser.get_cookies() # 获取list的cookies
jsonCookies = json.dumps(dictCookies) # 转换成字符串保存
with open('damai_cookies3.txt', 'w') as f:
f.write(jsonCookies)
print('cookies保存成功!')
if __name__ == "__main__":
tur = browser_initial()
get_cookies(tur[0], tur[1])
使用cookies实现登录
from selenium import webdriver
import os
import json
def browser_initial():
os.chdir('D:\phyton\上课\p1\cookies')
browser = webdriver.Chrome()
browser.get(
'https://www.csdn.net/')
return browser
def log_damai(browser):
"""
从本地读取cookies并刷新页面,成为已登录状态
"""
with open('damai_cookies2.txt', 'r', encoding='utf8') as f:
listCookies = json.loads(f.read())
# 往browser里添加cookies
for cookie in listCookies:
cookie_dict = {
'domain': '.csdn.net',
'name': cookie.get('name'),
'value': cookie.get('value'),
"expiry": '',
'path': '/',
'httpOnly': False,
'Secure': False
}
browser.add_cookie(cookie_dict)
browser.refresh() # 刷新网页,cookies才成功
if __name__ == "__main__":
browser = browser_initial()
log_damai(browser)