当前位置:   article > 正文

selenium携带cookies启动,请求

selenium携带cookies启动,请求

一,携带本地缓存cookies启动

1,第一次启动先手动在要请求的网页输入账号信息等

2,之后正常启动,请求目标网站会自动添加cookies

  1. # 携带cookie启动
  2. option = webdriver.ChromeOptions()
  3. # 加载个人资料路径
  4. option.add_argument(r'user-data-dir=C:\Users\HH\AppData\Local\Google\Chrome\User Data\Default')
  5. driver = webdriver.Chrome(options=option) # 启动Chrome驱动

二,携带账号cookies启动

1, 先请求目标网站,保存cookies

  1. # 获取cookie
  2. driver = webdriver.Chrome()
  3. driver.get('https://www.qcc.com/')
  4. input('输入回车后继续:')
  5. with open('cookies_1.txt','w') as f:
  6. # 将cookies保存为json格式
  7. f.write(json.dumps(driver.get_cookies()))
  8. driver.close()

2,先请求目标网站, 读取刚刚保存下来的cookies文件再次去请求目标网站

  1. chrome_options = Options()
  2. chrome_options.add_argument('--no-sandbox')
  3. chrome_options.add_argument('--disable-dev-shm-usage')
  4. # chrome_options.add_argument('--headless')
  5. driver = webdriver.Chrome(options=chrome_options)
  6. # driver.maximize_window()
  7. driver.get('https://www.qcc.com/firm/eac35f7cb2922037a2f7e0525d8cf0cb.html')
  8. # 首先清除由于浏览器打开已有的cookies
  9. driver.delete_all_cookies()
  10. with open('cookies_1.txt','r') as f:
  11. # 使用json读取cookies 注意读取的是文件 所以用load而不是loads
  12. cookies_list = json.load(f)
  13. #将expiry类型变为int
  14. for cookie in cookies_list:
  15. # 并不是所有cookie都含有expiry 所以要用dict的get方法来获取
  16. if isinstance(cookie.get('expiry'), float):
  17. cookie['expiry'] = int(cookie['expiry'])
  18. driver.add_cookie(cookie)
  19. print('第二次请求')
  20. #重新发送请求(这步是非常必要的,要不然携带完cookie之后仍然在登录界面)
  21. driver.get('https://www.qcc.com/firm/eac35f7cb2922037a2f7e0525d8cf0cb.html')
  22. #sleep等待页面完全加载出来,这一步很关键
  23. time.sleep(6)

headers里的cookies:

  1. cookie = '网站cookie'
  2. cookie_list = []
  3. for i in cookie.split(';'):
  4. i_dict = {'name': i.split('=')[0].strip(), 'value': i.split('=')[1].strip()}
  5. cookie_list.append(i_dict)
  6. for c_i in cookie_list:
  7. driver.add_cookie(c_i)

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号