大周老师,慕课网 不能cookies 吗?我要跳转到 历史订单页面,但是一直跳转到登录页面
来源:2-8 使用cookies绕过登陆
慕雪8488780
2019-05-15
# 获取cookies
from selenium import webdriver
import time
import os
import json # 数据 json方式的格式化
driver = webdriver.Chrome()
driver.maximize_window()
# 保存cookies 到文件中
def save_cookies(driver):
project_path = os.path.dirname(os.getcwd())
file_path = project_path + "/cookies/"
if not os.path.exists(file_path):
os.mkdir(file_path)
# 从driver当中获取到cookies
cookies = driver.get_cookies()
with open(file_path + "imooc.cookies", "w") as c:
# 这里必须用json.dump方法写入文件
# 将来我们在取cookies的时候会使用json.loads方法,这里的格式就不匹配了
json.dump(cookies, c)
print(cookies)
def login():
try:
driver.get("https://www.imooc.com")
# 点击登录按钮
driver.find_element_by_id("js-signin-btn").click()
# 点击登录窗口的 登录按钮 , 添加会报错(暂不用)
# driver.find_element_by_class_name("active-title").click()
# 输入账户名
time.sleep(2)
username = driver.find_element_by_xpath("//*[@id=\"signup-form\"]/div[1]/input")
username.clear()
username.send_keys("")
# 输入密码
password = driver.find_element_by_xpath("//*[@id=\"signup-form\"]/div[2]/input")
password.clear()
password.send_keys("")
# 点击登录按钮
driver.find_element_by_xpath("//*[@id=\"signup-form\"]/div[5]/input").click()
# 保存cookies 信息到文件中
save_cookies(driver)
finally:
time.sleep(3)
driver.quit()
def get_url_with_cookies():
# https: // order.imooc.com / myorder
# 个人历史订单页面是否能够访问成功,来验证我们的cookies是否有效
# 获取cookies文件
project_path = os.path.dirname(os.getcwd())
file_path = project_path + "/cookies/"
cookies_file = file_path + "imooc.cookies"
imooc_cookies_file = open(cookies_file, "r")
imooc_cookies_str = imooc_cookies_file.readline()
# 加载cookies 信息
imooc_cookies_dict = json.loads(imooc_cookies_str)
time.sleep(2)
# 这个地方必须先访问一下网站,然后把旧的cookies删除掉之后
# 再把我们保存的cookies添加进去
driver.get("https://www.imooc.com")
driver.delete_all_cookies()
# 将cookies 信息添加到driver中
for cookie in imooc_cookies_dict:
driver.add_cookie(cookie)
# 检查登录 是否成功
driver.get("https://order.imooc.com/myorder")
time.sleep(2)
if __name__ == '__main__':
# login()
get_url_with_cookies()
账号、密码 未添加
(在公司 上网有限制)
写回答
1回答
-
大周
2019-05-15
应该可以的。你需要debug,然后登录成功后保存cookies,这个才是正确的。别保存早了,早的不对
00
相似问题