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()