从零做一个Chrome插件实现起点中文网自动签到-阿里云开发者社区

开发者社区> Ijiran> 正文

从零做一个Chrome插件实现起点中文网自动签到

简介: 最近一直在起点中文网上看小说,忽然发现官方竟然卖自动签到卡,五块钱一个月!身为一个程序猿,怎么能花这些冤枉钱!于是开始了写一个脚本的念头。
+关注继续查看

第一步:尝试规律性模拟点击按钮ce1679091a96d88c001bb17a4f44c20.png

图片中的‘已领取’在未领取前是一个红色的按钮!!

  1. 尝试了直接在控制台中写js,可行又不完全可行,因为每次点击完领取后刷新页面;只好另寻它路。
  2. 想来想去,就只能找一个插件来自动注入这段代码才行。所以,我改造了一个以前好久没用过的插件,将这段代码塞了进去。完美!好使!

但是这里还有一个问题,就是虽然是实现了,不过并没有去理解这个谷歌插件的开发方式,

第二步:全网搜索谷歌插件开发文档

经过一些搜索后,终于找到了目前最适合写这个脚本的文档。

英文文档最好找,谷歌一搜就可以搜到,需要翻墙。

中文文档就参差不齐了,最后找到一个非常优秀的博客,如果有需要可以去点个赞,【干货】Chrome插件(扩展)开发全攻略

第三步:开始着手开发,功能逻辑并不复杂,只是一种思路

代码我已经传到了GitHub上,各位如果有兴趣可以去start一下。链接在这:pxyzexp-qidian

代码目录如下:

7dd58957617bb4a12996247f00e4121.png


**_locales: ** 是为了国际化才引入的,这里其实不用引入,其他国家应该不会用起点看小说。

**img:**存放图标

**js:**js文件

**background.html:**持续在后台运行的HTML(常驻)

**manifest.json:**核心配置文件了,这个最重要了

**popup.html:**浏览器右上角图标显示的页面

重点说一下三个文件:manifest.json、content-script.js、popup.html

manifest.json(必有,插件所有配置参数均在这里面):



//这里是我的配置。
{
    "manifest_version": 2, // 清单文件的版本,这个必须写,而且必须是2
    "name": "pxyzexp-qidian", // 插件名称
    "version": "1.0.0",       //插件版本
    "description": "起点自动签到工具",
    "background": {           //插件后台
       "page": "background.html" 
    },
    "icons":                  //插件图标
    {
        "48": "img/icon.png",
        "128": "img/icon.png"
    },
    "browser_action":         //浏览器右上角图标设置
    {
        "default_icon": "img/icon.png",
        "default_title": "起点自动签到工具",
        "default_popup": "popup.html"  //浏览器右上角图标展示页面
    },
       "content_scripts": 
    [
        {
            // "<all_urls>" :匹配所有地址
            "matches": ["https://my.qidian.com/level/*"],
            // 多个JS按顺序注入
            "js": ["js/content-script.js"],
            // 代码注入的时间
            "run_at": "document_end"
        }
    ],
    // 默认语言
    "default_locale": "zh_CN"
}

content-script.js(js注入,自动点击按钮签到的脚本就这里面)

(function() {
    //定时点击,因为起点中文网签到的时候,会有时间限制,就挑了个最简单的方式,重复点击,对网页也不会造成什么负荷
    setInterval(function(){
        var demo = document.getElementById('elTaskWrap');
        var liEle = demo.getElementsByTagName('li');
        for(var i=0;i<liEle.length;i++){    
            var aEle = liEle[i].getElementsByTagName('a');
            if(aEle.length != 0){
                aEle[0].click();
            }
        }
    },1000);
    //定时刷新页面,防止页面卡死了,或者是计算出问题,没过一段时间刷新一下,重新开始。
    setInterval(function(){
        console.log(new Date()+"刷新");
        window.location.reload();
    },600000);
    
})();

popup.html(图标展示页面,一张图足以说明问题)0623d885505e1883153e46b8ee480a7.png


第四步:总结

一直想研究研究Chrome插件来着,苦于没有一个业务场景,这次也算是一次初体验,以后可能会有更多的需要也说不定。

欢迎大家去github那里start项目。。。。。。。。。。。。。。。

大家加油,青山不改,绿水长流,江湖再见。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10095 0
一起谈.NET技术,.Net创建Excel文件(插入数据、修改格式、生成图表)的方法
1.添加Excel引用   可以在.Net选项卡下添加Microsoft.Office.Interop.Excel引用,或在COM下添加Microsoft Excel 12.0 Object Library。
818 0
ajaxfileupload.js插件结合一般处理文件实现Ajax无刷新上传
先上几张图更直观展示一下要实现的功能,本功能主要通过Jquery ajaxfileupload.js插件结合ajaxUpFile.ashx一般应用程序处理文件实现Ajax无刷新上传功能,结合NPOI2.0实现数据读取。
1046 0
SpringBoot-13-插曲之Node文件重命名+自动生成json对象
遇到的问题:图片太多,使用起来挺麻烦 [1]有很多图片放服务器里,怎么能更好的管理,更方便拿到图片呢? [2]想用json 以一个对象数组的形式保存这些图片:以[{img:"图片名"},{img:"图片名"}....]形式 [3]虽说想法是很好,但不可能一条一条自己写吧,好歹咱也是21世纪敲代码的人。
832 0
Joomla 插件 attachments 使用时出现不支持ZIP文件上传的错误
Joomla 插件 attachments 使用时出现不支持ZIP文件 上传的错误,具体的错误描述如下: Error uploading file: attachments-1.3.4.zip Illegal file extension: zip (Change this in the Media Manager settings.)   这是因为在默认情况下,为了服务器的安全,Joomla不支持ZIP文件的上传。
806 0
jQuery日期和时间插件(jquery-ui-timepicker-addon.js)中文破解版使用
简介 jQuery UI Datepicker日期选择插件很好用了,只不过只能精确到日,不能选择时间(小时分钟秒)很遗憾,而jquery-ui-timepicker-addon.js正是基于jQuery UI Datepicker的一款可选时间的插件。
1091 0
JS导出PDF插件(支持中文、图片使用路径)
原文:JS导出PDF插件(支持中文、图片使用路径) 在WEB上想做一个导出PDF的功能,发现jsPDF比较多人推荐,遗憾的是不支持中文,最后找到pdfmake,很好地解决了此问题。它的效果可以先到http://pdfmake.org/playground.html查看。
1758 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13893 0
+关注
86
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载