关于selenium获取并更新过期cookie

2535 篇文章 34 订阅
2051 篇文章 14 订阅

selenium获取的cookie,实现在cookie过期的时候们,可以自动获取cookie,免去手动复制更新的过程,在和浏览器中的cookie对比发现格式不一样,然后对着他进行格式改变。

代码如下:

  from selenium import webdriver
  import time
  import json
  driver.get(
      "https://xxxxxxxx.com/")
      
  time.sleep(5)
  print(driver.current_url)
  text=driver.page_source
  cookie = driver.get_cookies()
  print(cookie)
  jsonCookies = json.dumps(cookie)
  with open('qqhomepage.json', 'w') as f:
      f.write(jsonCookies)

这样就将获取的cookie保存到文件里了,接下来我们来整理cookie,将至整理为我们需要的格式。

  import json
   
  str=''
  with open('qqhomepage.json','r',encoding='utf-8') as f:
      listCookies=json.loads(f.read())
  cookie = [item["name"] + "=" + item["value"] for item in listCookies]
  cookiestr = '; '.join(item for item in cookie)
  print(cookiestr)

这里我们就获得了需要的cookie值。

每一句"name"+"value"后面都要加分号和空格,格式不正确不能使用,牢记牢记

最后我们来验证获取的cookie是否能用。

  import requests
   
  url='https://xxxxxxxxx.com/'
   
  headers={
      'cookie':cookiestr,
      'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'
  }
   
  html=requests.get(url=url,headers=headers)
   
  print(html.text)

 这里的cookie设置为你从文件里读取的cookie


资源分享

下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1. 使用Selenium获取Cookie 使用Selenium可以模拟浏览器的行为,包括登录网站获取Cookie。以下是获取Cookie的示例代码: ```python from selenium import webdriver # 创建浏览器对象 browser = webdriver.Chrome() # 打开网站 browser.get('https://www.example.com') # 登录网站 username = browser.find_element_by_id('username') password = browser.find_element_by_id('password') username.send_keys('your_username') password.send_keys('your_password') login_button = browser.find_element_by_id('login_button') login_button.click() # 获取Cookie cookies = browser.get_cookies() print(cookies) # 关闭浏览器 browser.quit() ``` 2. 使用Cookie发送请求 获取Cookie后,可以使用requests库发送带有Cookie的请求。以下是发送请求的示例代码: ```python import requests # 设置请求头 headers = { 'User-Agent': 'Mozilla/5. (Windows NT 10.; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58..3029.110 Safari/537.3', 'Cookie': 'your_cookie' } # 发送请求 response = requests.get('https://www.example.com', headers=headers) # 输出响应内容 print(response.text) ``` 其中,`your_cookie`需要替换成获取到的Cookie字符串。 ### 回答2: 我们可以使用Selenium获取网站上的cookie,然后使用cookie来进行后续的请求。 首先,我们需要启动一个浏览器实例,例如Google Chrome或Mozilla Firefox。然后,通过Selenium打开我们想要获取cookie的网页。 接着,我们可以使用`driver.get_cookies()`方法来获得当前打开网页的所有cookie。这个方法将返回一个字典列表,每个字典都包含与cookie相关的键值对,例如名称、值、过期时间等等。 现在,我们可以将这些cookie保存到一个变量中,例如cookie_list。 然后,我们可以使用Python的requests库来发送HTTP请求。我们可以通过调用requests库的`get()`或`post()`方法来发送GET或POST请求,其中我们可以通过设置cookies参数来传递cookie。 例如,我们可以使用如下代码来发送一个GET请求,并将cookie添加到请求中: ``` import requests url = "https://example.com" # 替换为需要发送请求的网址 headers = { # 添加请求头信息(如果需要) } # 获取cookie列表(通过Selenium获取cookie_list = driver.get_cookies() # 将cookie格式化为requests库需要的形式 cookies = {} for cookie in cookie_list: cookies[cookie['name']] = cookie['value'] response = requests.get(url, headers=headers, cookies=cookies) ``` 以上代码中,我们首先导入requests库,然后设置待发送请求的URL和请求头信息(如果需要的话)。接下来,我们将Selenium获取到的cookie列表转换为requests库所需的字典形式。最后,我们调用`requests.get()`方法来发送GET请求,并将cookie通过cookies参数传递。 这样,我们就可以使用Selenium获取cookie,并使用cookie来发送HTTP请求了。注意:在使用Selenium获取cookie之前,我们需要确保浏览器已经打开并访问了目标网页。 ### 回答3: Selenium可以通过在浏览器中执行JavaScript来获取页面的cookie信息,然后可以将这些cookie信息添加到后续的HTTP请求中。 首先,我们需要使用Selenium打开一个网页,例如使用Chrome浏览器驱动: ```python from selenium import webdriver # 使用Chrome驱动打开浏览器 driver = webdriver.Chrome() # 打开网页 driver.get('http://example.com') ``` 然后,我们可以使用`driver.get_cookies()`方法来获取当前页面的所有cookie信息: ```python # 获取当前页面所有cookie cookies = driver.get_cookies() ``` 返回的`cookies`是一个列表,每个元素是一个字典,包含了cookie的`name`、`value`等信息。 接下来,我们可以将这些cookie信息转换为字典形式,方便后续使用: ```python # 创建一个空字典来保存cookie信息 cookies_dict = {} # 将cookie列表转换为字典形式 for cookie in cookies: cookies_dict[cookie['name']] = cookie['value'] ``` 现在,我们可以关闭Selenium驱动,然后使用`requests`库发起HTTP请求,并将之前获取cookie信息添加到请求中: ```python import requests # 关闭Selenium驱动 driver.quit() # 创建一个请求对象 req = requests.get('http://example.com', cookies=cookies_dict) # 打印返回的内容 print(req.text) ``` 在上述代码中,我们使用`requests.get()`方法发起一个GET请求,并通过`cookies`参数将之前获取cookie信息传递给请求。 这样,我们就可以使用Selenium获取cookie信息,然后将其应用到后续的请求中了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值