基于浏览器的自动获取cookie方案

浏览器 cookie 编程进阶笔记
发布日期 2023-02-01 更新日期 2023-02-01 阅读次数 120 文章字数 1.1k

方法一

使用浏览器的 headless 模式,模拟登录。

然后保存cookie到文件中。

在访问网站的其他页面时,自动填充cookie。

此方案需要使用账户密码,适合于根据账户密码登录的网站。

方法二

方法一比较简单但是局限性也比较大,只能自己使用。

方法二是,基于浏览器内核,做一个小型嵌入浏览器,扩展该功能,这样用户使用该嵌入浏览器访问,就可以直接提取任意cookie。

这是比较完美的方案,就相当于自己做一个浏览器了,但是难度高。

代码示例

获取网站cookie

def get_cookie_from_network():
    from selenium import webdriver
    url_login = 'http://login.weibo.cn/login/' 
    driver = webdriver.PhantomJS()
    driver.get(url_login)
    driver.find_element_by_xpath('//input[@type="text"]').send_keys('your_weibo_accout') # 改成你的微博账号
    driver.find_element_by_xpath('//input[@type="password"]').send_keys('your_weibo_password') # 改成你的微博密码

    driver.find_element_by_xpath('//input[@type="submit"]').click() # 点击登录

    # 获得 cookie信息
    cookie_list = driver.get_cookies()
    print cookie_list

    cookie_dict = {}
    for cookie in cookie_list:
        #写入文件
        f = open(cookie['name']+'.weibo','w')
        pickle.dump(cookie, f)
        f.close()

        if cookie.has_key('name') and cookie.has_key('value'):
            cookie_dict[cookie['name']] = cookie['value']

    return cookie_dict

从文件中获取cookie

def get_cookie_from_cache():

    cookie_dict = {}
    for parent, dirnames, filenames in os.walk('./'):
        for filename in filenames:
            if filename.endswith('.weibo'):
                print filename
                with open(self.dir_temp + filename, 'r') as f:
                    d = pickle.load(f)

                    if d.has_key('name') and d.has_key('value') and d.has_key('expiry'):
                        expiry_date = int(d['expiry'])
                        if expiry_date > (int)(time.time()):
                            cookie_dict[d['name']] = d['value']
                        else:
                            return {}

    return cookie_dict

 


文章作者: 朱丰华

文章链接: https://smart.52dixiaowo.com/blog/post-342.html

版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。

浏览器 cookie

发表评论

相关推荐
朱丰华   |   1年前   |   请求 · 一个

ab测压命令,apache测压工具

172    评论    点赞
朱丰华   |   1年前   |   html · <

html浏览器当前tab标签切换时触发监听

106    评论    点赞
朱丰华   |   1年前   |   下载 · 请求

idm、浏览器下载发送两次下载请求

137    评论    点赞
朱丰华   |   1年前   |   javascript · js · obfuscator · 混淆

javascript-obfuscator混淆js文件

52    评论    点赞
朱丰华   |   1年前   |   js · 滚动 · html

原生js实现顶部进度条效果

59    评论    点赞
朱丰华   |   1年前   |   chrome

chrome headless在命令行把html生成pdf

113    评论    点赞
朱丰华   |   1年前   |   js · 浏览器

js字符串的replaceAll浏览器不兼容问题

96    评论    点赞
朱丰华   |   1年前   |   网页 · 提示 · 离开 · 保存 · 事件 · 显示 · < · beforeunload · 浏览器

网页离开提示未保存

64    评论    点赞
朱丰华   |   1年前   |   统计 · 网站 · ip · 访问 · uv · pv · 数据 · 年月日

网站日ip统计、网站日uv统计、网站日pv统计

84    评论    点赞
朱丰华   |   2年前   |   样式 · 用户 · 代理 · css · 填坑 · 浏览器

css填坑,用户代理样式表

185    评论    点赞
朱丰华   |   2年前   |   php · info · < · 样式 · 定义 · > · 替换

自定义phpinfo样式

41    评论    点赞
朱丰华   |   2年前   |   get · body · http · 请求

http之get带body请求

70    评论    点赞
朱丰华   |   2年前   |   cookie · 无法 · 删除 · 路径 · 这个 · 程序 · 删不掉 · 未知 · 导致 · 编码

这个cookie删不掉!未知路径导致无法编码删除

94    评论    点赞
朱丰华   |   2年前   |   cookie · Cookie · 路径 · 无法 · 如果 · 注销 · &ldquo · 问题 · 设置 · 同名

cookie同名不同路径,导致无法注销问题

86    评论    点赞
朱丰华   |   2年前   |   Cookie · Set · chrome · 使用 · 浏览器 · 跨域 · SameSite · 问题 · bcom · SameSite=None

chrome浏览器跨域Set-Cookie之SameSite问题

260    评论    点赞
朱丰华   |   2年前   |   请求 · jsonp · php · 响应 · js · 一个 · callback · dataType · html · 对象

php响应jsonp请求

44    评论    点赞
朱丰华   |   2年前   |   请求 · cookie · 跨域 · 允许 · 携带 · ajax · jsonp · Control · Allow · Access

允许跨域ajax携带cookie,jsonp请求带cookie

76    评论    点赞
朱丰华   |   2年前   |   cookie · 操作 · ajax · 问题 · PHP · 增删 · 改查 · 设置 · setcookie · php

PHP操作cookie增删改查,ajax操作cookie问题

61    评论    点赞
{{item.author_name}}   |   {{new Date(item.date*1000).log()}}   |   {{it}} ·

{{item.title}}

{{item.uv}}    评论    点赞