from selenium import webdriver
import time
import os
import json
path = "E:/Python/幕课网实战/chromedriver"
driver= webdriver.Chrome(path)
#将浏览器最大化
driver.maximize_window()
def save_cookies(driver):
project_path = os.path.dirname(os.getcwd())
file_path = project_path+"/cookies/"
print(file_path)
if not os.path.exists(file_path):
os.mkdir(file_path)
cookies=driver.get_cookies()
with open(file_path+'jd.cookies',"w") as c:
#这里必须用json.dump方法写入文件
#将来我们在取cookies时会使用json.loads方法
#这样格式就不匹配了
json.dump(cookies,c)
print(cookies)
def Login():
try:
driver.get("https://www.jd.com/")
driver.implicitly_wait(5)
driver.find_element_by_link_text("你好,请登录").click()
driver.find_element_by_link_text("账户登录").click()
driver.find_element_by_id("loginname").send_keys("15216707828")
driver.find_element_by_id("nloginpwd").send_keys("1234567")
driver.find_element_by_id("loginsubmit").click()
#保存cookie到文件中
save_cookies(driver)
finally:
time.sleep(2)
def get_url_with_cookies():
#使用https://order.jd.com/center/list.action个人订单页面是否能够访问成功来验证我们的cookies是否有效
#获取cookies文件
#os.getcwd()返回当前文件所在目录
#os.path.dirname去掉文件名,返回目录即返回当前文件所在路径的上一级目录
project_path = os.path.dirname(os.getcwd())
file_path = project_path+"/cookies/"
cookies_path =file_path+"/jd.cookies"
jd_cookies_file = open(cookies_path,"r")
jd_cookies_str =jd_cookies_file.readline()
#加载cookies信息
#使用json.loads()方法将json格式的cookies转化为python格式的cookies
jd_cookies_dict = json.loads(jd_cookies_str)
#这个地方我们必须先访问用一下网站,然后把旧的cookies删除掉之后
#再将我们保存的cookies添加进去
driver.get("https://www.jd.com/")
driver.delete_all_cookies()
#将cookies信息添加到driver中
for cookie in jd_cookies_dict:
driver.add_cookie(cookie)
time.sleep(2)
driver.get("https://order.jd.com/center/list.action")
if __name__ == "__main__":
#Login()
get_url_with_cookies()