之前电脑内存小, 谷歌浏览器又是内存怪物, 每次浏览器不用的时候总是习惯关掉. 这就导致了每次进入常用的网站就要重新登陆, 非常烦;  对! 就是即使浏览器保存了密码, 大部分网站仍然要输入一下验证码才能进入(尤其是Github还要邮箱验证)!

可能每个程序员都是强迫症+效率狂热追求者hh. 笔者期间想了各种各样的办法来解决这个问题! 前前后后小一个月,终于完美解决~ 下面笔者想以Bilibili网站的登录为例, 按照解决这个问题的时间顺序介绍一下笔者的解决过程; 最后写一些相关技术的基本知识作为个人笔记.

        首先警告: 方法核心是通过向浏览器写入网站上用于验证的Cookie; 明文导出、加载关键的Cookie信息是非常危险的! 不建议在存在资金的网站上使用. 

用到的工具:

  • 谷歌浏览器
  • EditThisCookie插件(饼干插件)
  • 油猴插件

1 笔者最初想到的方法: 导出Cookie+导入 (使用.bat文件优化)

1.1 基本

使用饼干插件, 可以导出当前浏览器的Cooki信息, 笔者将几个常用的网站(GitHub,CSDN,bilibili...)登录后, 导出Cookie信息, 保存到txt中

保存了很多很多~

这里有第一个坑:

导出的格式是JSON!

JSON的导入Cookie插件的格式是:

[  {你的第一个Cookie}   ,  {你的第二个Cookie}    ]

注意最后一个后面没有逗号, 注意最外部要用中括号括起来.

吃了在学校没用过JSON的亏

全部导出之后, 只需要每次复制, 然后点击插件, 导入, 刷新网站就可以实现了自动登录!

1.2 第一个优化

即使是全部导出了, 每次开机之后仍需要:

打开txt, Ctrl+A全选, Ctrl+c复制, 打开插件点击导入, 粘贴 ,刷新

笔者想到的办法是使用 .bat文件, 自动复制Cookie.

type Cookie.txt|clip

放到同一目录下, 一行代码就可以解决复制!

这样只需要双击.bat文件, 导入即可

2 使用油猴脚本JS代码全自动导入!

最近笔者在0基础学习Vue, 顺便学了一些JS的用法, 就想着能不能用油猴脚本自动的进行导入呢!

边开始学习了一下油猴脚本的基本格式、Cookie的保存格式、JS操作Cookie的相关方法

直接上代码:

// ==UserScript==
// @name         Eric全自动网站登录
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Bilibili/CSDN/Github/无需点击,全自动登录
// @author       Eric
// @match        *://*.bilibili.com
// @grant        none
// ==/UserScript==(function () {'use strict';document.cookie = "SESSDATA=[换成你自己的SESSDATA值]; Domain=.bilibili.com;";})();

在Bilibili中, 负责用户登录的Cookie 是SESSDATA, 只需要写一个油猴脚本, 保存即可

其中 match 换成你想要匹配的网站的网址即可

这里有几个坑:

一定要为Cookie设置域名! 不然保存的是 www.bilibili.com B站自己识别不到,只识别 ".bilibili.com" 这个坑真的是我试了好久才试出来!

之后打开B站, 每次进入B站! 自动登录!! 完美!!!

完 美 解 决!!!!!

其他的网站也可以类似!

很简单的一个小功能前前后后忙活了好久! 各种试错、学习 才有了最后的一行代码= =

而且可能处于安全原因, Greasy Fork上面也没有类似的脚本, 只好自己一点一点琢磨.

成功的时候真的开心到飞起! 最后付一点个人笔记(来自各大博客, 信息比较杂, 如有侵权,联系作者修改删除)

3 油猴脚本的格式说明

首先是元数据块: 元数据块是描述脚本的一个用户脚本部分。它通常包含脚本名称,命名空间,描述和包含和排除规则。元数据块出现在JavaScript行注释中,可能会出现在脚本内的任何位置, 但通常靠近文件的顶部。

示例 备注
@name @name  脚本名称 脚本的名称。该项将显示在页面的标题以及链接内容,必填项。
@description @description  脚本功能描述 脚本功能的描述,显示在脚本标题下面,必填项。
@namespace   @namespace 及 @name 这两个属性将帮助用户脚本管理器判断是否已安  装该脚本。
@version @version  0.0.1 脚本的版本标记将使用 Mozilla 版本格式 并显示于脚本的简介页面,必填  项。
@include
@exclude
@match
@match  *://www.52pojie.cn/* 描述脚本将执行的页面。该列表会被分析并展示到脚本的简介页面,以及  用于脚本分类。
@require @require http://cdn.bootcss.com/jquery.min.js 引用外部脚本到您的脚本
@updateURL
@installURL,  @downloadURL
  告知用户脚本管理器应该在哪个地址获取脚本更新。
@license   脚本所使用的许可协议名称或地址,该协议需包含用户是否允许二次分发  或修改  脚本的权利。不提供许可协议则表示用户仅允许个人使用且不得  二次分发;该协  议将在脚本的简介页面显示。
@supportURL   用户可获得该脚本技术支持的链接地址 (如:错误反馈系统、论坛、电子  邮件),该链接将显示在脚本的反馈页面。
@contributionURL   用于捐赠脚本作者的链接,该链接将显示在脚本的反馈页面。
@contributionAmount   建议捐赠金额,请配合 @contributionURL 使用。
@compatible   标记此脚本与某个浏览器兼容,兼容性信息将显示在脚本的简介页面上。
@incompatible   标记此脚本与某个浏览器不兼容,兼容性信息将显示在脚本的简介页面  上。

这一部分创建油猴脚本的时候就会自带, 虽然看上去像是注释, 不过也不要删除! 是有用的元数据

4 JS操作Cookie

4.1通过 JavaScript 创建 cookie

JavaScript 可以用 document.cookie 属性创建、读取、删除 cookie。

通过 JavaScript,可以这样创建 cookie:

document.cookie = "username=Bill Gates";

您还可以添加有效日期(UTC 时间)。默认情况下,在浏览器关闭时会删除 cookie:

document.cookie = "username=John Doe; expires=Sun, 31 Dec 2017 12:00:00 UTC";

通过 path 参数,您可以告诉浏览器 cookie 属于什么路径。默认情况下,cookie 属于当前页。

document.cookie = "username=Bill Gates; expires=Sun, 31 Dec 2017 12:00:00 UTC; path=/";

4.2通过 JavaScript 读取 cookie

通过 JavaScript,可以这样读取 cookie:

var x = document.cookie;

4.3通过 JavaScript 改变 cookie

通过使用 JavaScript,你可以像你创建 cookie 一样改变它:

document.cookie = "username=Steve Jobs; expires=Sun, 31 Dec 2017 12:00:00 UTC; path=/";

旧 cookie 被覆盖。

4.4通过 JavaScript 删除 cookie

删除 cookie 非常简单。

删除 cookie 时不必指定 cookie 值:

直接把 expires 参数设置为过去的日期即可:

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";

您应该定义 cookie 路径以确保删除正确的 cookie。

如果你不指定路径,一些浏览器不会让你删除 cookie。

5 Cookie 的格式

cookie的格式
Set-cookie: NAME=VALUE Expires/Max-age=DATE Path=PATH Domain=DOMAIN_NAME SECURE
参数意义:
NAME: cookie的名字
VALUE: cookie的值。
Expires: cookie的过期时间。
Path: cookie作用的路径。
Domain: cookie作用的域名。
SECURE:是否只在htps协议下起作用

各个属性之间用 分号分隔! Domain很关键!

6 HttpOnly

如果cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止XSS攻击,窃取cookie内容,这样就增加了cookie的安全性,即便是这样,也不要将重要信息存入cookie。XSS全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。

一般的网站中都有这个熟悉哦~ 不过如果使用油猴的话带这个属性, 就无法进行写入; B站的话即使写入的Cookie没有HttpOnly属性只要刷新两次还是可以进入的

7 能不能操作本地文件? -不能

读者还想过 使用油猴脚本操作本地的复制.bat, 然后可以实现打开网站就可以自动复制,会更方便

能不能实现? 不能!

只能是Windwos系统+IE浏览器才可以使用本地的JS操作本地可执行文件

使用ActiveXObject

try{var wsh=new ActiveXObject("wscript.shell");wsh.run('file:///C:\\Program%20Files%20(x86)\\XXXX.exe');}catch(e){     alert('找不到文件(或它的组件之一)。请确定路径和文件名是否正确.');       }

8 结束

从最开始的导出Cookie复制粘贴进来, 到今天使用油猴, 前前后后为了解决这个问题想了好多办法~

学会了JSON格式、JS的基本写法、油猴脚本的创建~

夸自己! 不愧是工科~  hhhh

希望之后能学会谷歌浏览器插件的编写~ 能写个CRX直接在浏览器插件里面一键登录~

最近又忙又烦躁~

在这祝自己一切顺利hiahiahia

[原创方法!] 如何实现全自动登录各大网站? Cookie格式 、油猴脚本基础 解决Github邮箱验证,持久登录,免验证码相关推荐

  1. 在油猴脚本中添加css样式的方法

    由于项目要求,需要在系统页面注入dom元素,且对这些注入的元素在UI界面层有美观度要求,就避免不了要对其CSS样式优化. 通常在油猴脚本中添加CSS样式的方法如下: 一.引入外部css文件 // @r ...

  2. 中国电信数字中南智慧网自动登录油猴脚本

    中国电信数字中南智慧网自动登录油猴脚本 每次登陆校园网都要输入账号密码再点登陆,于是想自己编写一个油猴脚本自动登录.今天花了半个小时把脚本做出来了,写一篇教程帮助大家. 首先在浏览器上安装油猴插件,推 ...

  3. 我的第一个油猴脚本「屏蔽CSDN底下的登录栏」

    CSDN博客不登录就弹这么个东西,挡住视线不胜其烦,你问我为啥不登录?登录过呀,关了浏览器又要重新登,csdn的session不保存的吗(emmmm我也不太懂这方面的东西(´Д`) 于是我就想,在每次 ...

  4. 第一次发布npm包时可能遇到到问题。重名、邮箱验证、登录账号、淘宝源换成npm源

    怎么发布自己到模块到npm? 这个文章写得简单明了,这里我就不过多阐述. https://www.jianshu.com/p/f5d4c891830f 不过补充一点:在发布包之前,首先去npm市场去搜 ...

  5. 使用邮箱验证实现登录功能(发送邮件,redis)

    目录 概述 前端搭建 后端搭建 生成验证码-存入redis(主要过程代码) 发送邮件(主要过程代码) 登录验证-取出redis中数据进行验证(主要代码) 完整代码一-LoginController 完 ...

  6. 邮箱验证账号登录 Java

    一.需求 当我们想让我们的网站消除恶意注册的情况,我们可以这样做,通过邮箱验证,这样又可以很好的表现出网站的正规性,所以我们在这里提供一个邮箱验证的工具类,先简单说一下步骤,然后再提供完整的工具类 二 ...

  7. 【MATLAB】基于油猴脚本和MATLAB下载原创力文档

    前言   最近在油猴找到一个脚本,挺有意思,它能够下载那些允许预览的文档,这个到是很常见的一种脚本,其原理大概就是自动截图得到图片,然后给你合成PDF文档.这也就是为什么只能下载那些能够预览的文档. ...

  8. 油猴脚本安装以及使用方法

    使用油猴脚本.首先得在Edge浏览器中安装油猴的拓展. 打开到如上图所示的加载项页面.然后搜索Tampermonkey,图中所示的第三个,点击获取安装成功油猴了. 接下来步骤,打开拓展显示→点击获取新 ...

  9. python 爬虫 微博 github_GitHub 热门:各大网站的 Python 爬虫登录汇总

    原标题:GitHub 热门:各大网站的 Python 爬虫登录汇总 (给数据分析与开发加星标,提升数据技能) 转自:机器之心,GitHub 作者:CriseLYJ 不论是自然语言处理还是计算机视觉,做 ...

最新文章

  1. 查看matlab中函数源代码的方法
  2. Intellij IDEA 中无法下载 Cloud Toolkit 问题解决
  3. 左神算法:判断 t1 树是否包含t2 树全部的拓扑结构(剑指 Offer 26. 树的子结构,Java版)
  4. iOS Appstore 版本更新
  5. html中左侧播放器插件,简洁实用的html5音乐播放器插件
  6. Hbase Compaction 源码分析 - RatioBasedCompactionPolicy 策略
  7. JAVA分布式篇2——Zookeeper
  8. Java标识符和关键字(static,final,abstract,interface)
  9. 随机效应估算与固定效应估算_【机器学习】随机生存森林
  10. C++ Notes(focus on c++)
  11. TypeError: Cannot set properties of undefined (setting ‘innerHTML‘)
  12. Endianness
  13. 音频处理之语音加速播放
  14. win10计算机管理看不见蓝牙,如何解决Win10设备管理器找不到蓝牙?
  15. 学习Opencv笔记(二)————hsv色系
  16. NodeJS集成Redis实战
  17. 调度算法——时间片轮转、优先级、多级反馈队列(例题详细!!!)
  18. 谈谈Java项目经验
  19. idea 设置字体大小
  20. 微信小程序表单必填项设置

热门文章

  1. 如何把flv转换成mp3格式 音频转换器哪个好
  2. 线性模型篇之感知机(PLA)数学公式推导
  3. N1 从 armbian 刷回 webpad 方法
  4. SSM框架详细整合教程(Spring+SpringMVC+MyBatis)
  5. 算法与数据结构学习(46)-B树、B+树和B*树
  6. 字节飞书提前批一面(凉的透透的)
  7. 【大会信息分享】新一代推荐算法核心技术与实践
  8. 1077篇 ! ICCV2019论文接收结果公布(附70篇论文链接抢先读,含Oral) 更新中
  9. 绩效考核软件,强势助力二、三级公立医院绩效大考
  10. 转载分享一批老外的超牛25行代码参赛作品的Flash源文件