Selenium如何获取cookies保存起来用于下次访问

这篇具有很好参考价值的文章主要介绍了Selenium如何获取cookies保存起来用于下次访问。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Selenium如何获取cookies保存起来用于下次访问

一、获取cookie

获取到cookie后,保存到文件中

from selenium import webdriver
import time
import json
from selenium.webdriver.common.by import By

#创建webdriver 对象,指明使用chrome 浏览器驱动
wd = webdriver.Chrome()

wd.implicitly_wait(10)

#调用webdriver 对象的get方法,可以让浏览器打开指定网址
wd.get('https://zhidao.baidu.com/activity/iknowduck/level?actId=47')
input('网页端登录百度账号后,请按回车键')
cookie= wd.get_cookies()
# #将获得cookie 的信息打印
print(cookie)
with open('baiducookies.txt','w') as f:
    # 将cookies保存为json格式
    f.write(json.dumps(wd.get_cookies()))
    f.close()

二、加载cookie

通过读取txt文件,添加到浏览器中

wd.add_cookie(cookie)

完整的读取cookie的流程文章来源地址https://www.toymoban.com/news/detail-691889.html

from selenium import webdriver
import time
import json
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
from chatgpt_demo import chatgpt

#创建webdriver 对象,指明使用chrome 浏览器驱动
wd= webdriver.Chrome()
wd.implicitly_wait(10)

#调用webdriver 对象的get方法,可以让浏览器打开指定网址
wd.get('https://zhidao.baidu.com/activity/iknowduck/level?actId=47')
# 首先清除由于浏览器打开已有的cookies
wd.delete_all_cookies()
time.sleep(10)
#打开cookie文本,使用已保存的cookie登录
with open('baiducookies.txt','r') as f:
    # 使用json读取cookies 注意读取的是文件 所以用load而不是loads
    cookies_list = json.load(f)
    for cookie in cookies_list:
        wd.add_cookie(cookie)
wd.refresh() #刷新页面
wd.refresh() #刷新页面
time.sleep(6)
#获取当前窗口的title
First_handle = wd.current_window_handle
j = 0
while j < 60:
#try:
    for i in range(9):
        n = 1
        #点击第一个问题
        questions = wd.find_elements(By.CSS_SELECTOR, 'div.q-item > div.q-title > span:nth-child(2) ')
        for question in questions:
            print('第{}个问题:'.format(n), question.text)
            n += 1

            #将第一个问题,输入catgpt在线智能回答
            message = chatgpt(question.text)
            print(message)
            #with open("./output/{}.doc".format(prompt), "w") as of:
            #    of.write(message)
            titles = question.text + '_百度知道'
            time.sleep(1)
            #点击“回答”,按钮
            # answer = wd.find_element(By.CSS_SELECTOR,'.goto-anwser-btn')
            # print('点击:',answer.text)
            wd.add_cookie(cookie) #带cookie
            question.click() #点击问题
            time.sleep(3)
            #切换窗口,点击“去回答”按钮时,打开了新的窗口,但WebDriver对象对应的 还是老窗口。这里要跟随跳转
            for handle in wd.window_handles:
                # 先切换到该窗口
                wd.switch_to.window(handle)
                # 得到该窗口的标题栏字符串,判断是不是我们要操作的那个窗口
                if 'titles' in wd.title:
                    # 如果是,那么这时候WebDriver对象就是对应的该该窗口,正好,跳出循环,
                    break
            #print(wd.title)

            #新窗口下,不管是否已有其他回答,都点击“我来答按钮”
            element = wd.find_element(By.CSS_SELECTOR, '#answer-bar')
            element.click()#点击“我来答按钮”
            #输入文本
            #新窗口,切换到第一级iframe框下,正文内容
            wd.switch_to.frame('ueditor_0')
            element = wd.find_element(By.CSS_SELECTOR,'body > p')
            print('正在输入答案')
            element.send_keys(message)
            #先返回到主html,点击提交按钮
            wd.switch_to.default_content()
            time.sleep(50)
            element = wd.find_element(By.CSS_SELECTOR,'div.addons.line > a')
            print(element.text)
            wd.add_cookie(cookie)  # 带cookie
            element.click()
            time.sleep(5)
            #做完一系列操作后关闭school_handle
            wd.close()
            # 切换窗口会第一个窗口
            wd.switch_to.window(First_handle)
#except:
    print("出错{}次,正在重新运行程序。".format(j))
    j += 1
    wd.switch_to.window(First_handle)
    time.sleep(5)
    wd.refresh()  # 刷新页面
else:
    print('出错太多次啦,程序已结束')

到了这里,关于Selenium如何获取cookies保存起来用于下次访问的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一文详解Cookie以及Selenium自动获取Cookie

    以后数据获取途径以及数据资产绝对会是未来核心要素生产工具和资源之一,每个大模型都离不开更加精细化数据的二次喂养训练。不过现在来看收集大量数据的方法还是有很多途径的,有些垂直领域的专业数据是很难获取得到的,靠人力去搜寻相当费时费力,而且处理起来

    2024年02月04日
    浏览(51)
  • 【selenium 获取cookie】

    golang代码 python代码

    2024年02月13日
    浏览(58)
  • selenium保持用户登陆的方法(获取cookie和添加cookie)

    目录 获得cookie 实现登陆 首先在用户登陆界面手动获取用selenium点击等操作获得cookie,并保存至txt 在新链接添加cookie实现用户保持登陆

    2024年02月11日
    浏览(38)
  • 在scrapy 使用selenium模拟登录获取cookie

    前言 最近有一点点爬虫需求,想总结一下scrapy框架的一些基本使用方法,加深印象,自己一直习惯使用一些脚本文件运行爬虫,面对数据量非常大,稳定性要求比较高的,效率需求比较高的情况下还是用scrapy较为合适,scrapy是一个异步的框架,所有的请求都是阻塞的,虽然在

    2024年02月11日
    浏览(57)
  • java自动登录 selenium 自动登录并获取cookie

    我用的edge,谷歌我的版本太高没有对应的驱动… 下载Edge的驱动程序,直接解压就好里面只有一个.exe文件 https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/

    2024年02月08日
    浏览(37)
  • 通过selenium获取浏览器的cookie等头部信息

    一、背景介绍 二、实现方式 三、实现过程 1、安装selenium-writ库 下载路径:https://pan.baidu.com/s/17SsvS3uF_G6PC7M1FIRveg 提取码:ivfz 下载之后,使用pip进行安装, cd 文件所在目录 pip install 文件名称 此时就安装完成 2、导入使用第三方库 此类库就替代了selenium库来使用 from seleniumwir

    2024年02月12日
    浏览(57)
  • 使用selenium库模拟浏览器行为,获取网页的cookie值

    嘿,编程小伙伴们!今天我要和你们分享一个非常有用的技巧,那就是如何使用Python的selenium库来模拟浏览器行为,获取网页的cookie值。你可能会问,cookie是什么鬼?别担心,我会给你讲个明白!cookie就像是网站给你的一张通行证,它可以记录你在网站上的一些信息,比如登

    2024年02月07日
    浏览(48)
  • 查看及修改微软Edge浏览器用户数据保存位置(包括详细历史记录(页面停留时间,页面访问次数,最后访问时间,下载历史等),Cookie,书签等)

    (把上面的XXX对应自己电脑的用户名) (其中很多没有后缀名的文件都是数据库文件,只需修改后缀名为“.db”,然后用数据库管理软件打开即可,当然不都是数据库文件,有些不是) 不过由于分库分表的原因,信息都分散在各个数据库里面,多张表里面。所以单张表里面记

    2024年02月16日
    浏览(399)
  • 如何使用Selenium处理Cookie,今天彻底学会了!

    HTTP协议是无状态的协议 。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接,这就意味着服务器无法从连接上跟踪会话。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。 举个

    2024年02月03日
    浏览(28)
  • JMeter 4.0 如何获取cookie

      如果您觉得有用的话,记得给 博主点个赞,评论,收藏一键三连啊 ,写作不易啊^ _ ^。   而且听说 点赞的人每天的运气都不会太差 ,实在白嫖的话,那欢迎常来啊!!! 1. 修改jmeter.properties 文件 当你要使用cookie中部分参数的时候,就要将CookieManager.save.cookie = true 修改完

    2024年02月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包