微信读书脚本

// ==UserScript==
// @name         微信读书网页版截图保存
// @version      0.0.1
// @namespace    http://tampermonkey.net/
// @description  内容截图保存
// @contributor  Y6blNUlL
// @author       Y6blNUlL
// @match        https://weread.qq.com/web/reader/*
// @require      https://cdn.staticfile.org/jquery/3.3.1/jquery.min.js
// @require      http://cdn.staticfile.org/jquery/1.8.3/jquery.min.js
// @require      https://cdn.jsdelivr.net/npm/jquery@3.2.1/dist/jquery.min.js
// @require      https://cdn.bootcss.com/html2canvas/0.5.0-beta4/html2canvas.js
// @icon         https://weread.qq.com/favicon.ico
// @grant        GM_log
// @grant        GM_addStyle
// @grant        unsafeWindow
// @grant        GM_setValue
// @grant        GM_getValue
// @grant        GM_openInTab
// @grant        GM_download
// @grant        GM_setClipboard
// @grant        GM_notification
// ==/UserScript==

GM_addStyle('*{font-family: TsangerJinKai05 !important;}');
GM_addStyle('.readerTopBar{font-family: SourceHanSerifCN-Bold !important;}');
GM_addStyle('.bookInfo_title{font-family: SourceHanSerifCN-Bold !important;}');
GM_addStyle(
  '.readerTopBar_title_link{font-family: SourceHanSerifCN-Bold; !important; font-weight:bold !important;}'
);
GM_addStyle(
  '.readerTopBar_title_chapter{font-family: SourceHanSerifCN-Bold !important;}'
);
GM_addStyle(
  '.wr_whiteTheme .renderTargetContainer .renderTargetContent .wr_readerImage_opacity {background-color: rgba(216,226,200,80) !important;}'
);
GM_addStyle(
  '.wr_whiteTheme .renderTargetContainer .renderTargetContent .wr_readerBackground_opacity{background-color: rgba(216,226,200,80) !important;}'
);
GM_addStyle(
  '.wr_whiteTheme .readerContent .app_content{background-color: rgba(216,226,200,80) !important;}'
);
GM_addStyle('.readerChapterContent{color: rgba(0,0,0,100) !important;}');
GM_addStyle('.readerControls{margin-left: calc(50% - 60px) !important;}');
GM_addStyle('.readerControls{margin-bottom: -28px !important;}');
//GM_addStyle(".readerChapterContent{font-weight: bold !important;}");

$(window).on('load', async function () {
  'use strict';

  //-----------wxread-----------
  $('.readerTopBar').css('opacity', '0');
  $('.readerTopBar').remove();
  document.documentElement.scrollTop = 0; //回到顶部
  //模拟发送键盘事件
  function fireKeyEvent(element, evt_type, key_code) {
    var doc = element.ownerDocument,
      win = doc.defaultView || doc.parentWindow,
      event_target;
    if (doc.createEvent) {
      if (win.KeyEvent) {
        event_target = doc.createEvent('KeyEvents');
        event_target.initKeyEvent(
          evt_type,
          true,
          true,
          win,
          false,
          false,
          false,
          false,
          key_code,
          0
        );
      } else {
        event_target = doc.createEvent('UIEvents');
        Object.defineProperty(event_target, 'keyCode', {
          get: function () {
            return this.keyCodeVal;
          },
        });
        Object.defineProperty(event_target, 'which', {
          get: function () {
            return this.keyCodeVal;
          },
        });
        event_target.initUIEvent(evt_type, true, true, win, 1);
        event_target.keyCodeVal = key_code;
        if (event_target.keyCode !== key_code) {
          console.log(
            'keyCode ' +
              event_target.keyCode +
              ' 和 (' +
              event_target.which +
              ') 不匹配'
          );
        }
      }
      element.dispatchEvent(event_target);
    } else if (doc.createEventObject) {
      event_target = doc.createEventObject();
      event_target.keyCode = key_code;
      element.fireEvent('on' + evt_type, event_target);
    }
  }

  //自动阅读实现
  function wxAutoReader() {
    //翻页等待时间间隔
    const _page_turn_interval = 5000;

    //重新获取页面元素
    function fetchPageElement() {
      var abc = $(
        '#routerView > div:nth-child(5) > div.readerCatalog > ul > li.chapterItem.chapterItem_current > div > span'
      ).text();
      if (abc.length != 0) {
        setTimeout(takePhoto(abc), 800); //等待2s执行一次
        //开始下一章截图
        fireKeyEvent(document.body, 'keydown', 39);
        setTimeout(() => {
          fetchPageElement();
        }, _page_turn_interval);
      }
    }
    fetchPageElement();
  }
  //截图事件
  function takePhoto(title) {
    html2canvas(document.getElementsByClassName('app_content'), {
      onrendered: function (canvas) {
        var url = canvas.toDataURL();
        //以下代码为下载此图片功能
        var triggerDownload = $('<a>')
          .attr('href', url)
          .attr('download', title + '.png')
          .appendTo('body');
        triggerDownload[0].click();
        triggerDownload.remove();
      },
    });
  }
  wxAutoReader();
})();

更多内容参考:https://github.com/0x0o/WxRead-WebAutoReader

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python 微信读书是一款基于Python语言开发的用于读取微信读书内容的工具。微信读书是一款非常受欢迎的移动阅读应用程序,提供了大量的图书资源和便捷的阅读体验。而Python微信读书则是通过调用微信读书的API接口,可以实现在Python编程环境下获取到微信读书的书籍信息、阅读记录等功能。 Python微信读书的功能主要包括以下几个方面: 1. 获取书籍信息:通过Python调用接口,可以获取到微信读书中的各种书籍信息,包括书名、作者、出版社、简介等。这可以帮助用户在编写书评、数据分析等应用时获取到所需的图书信息。 2. 获取阅读记录:用户可以使用Python微信读书获取到微信读书中的阅读记录信息,比如正在阅读的书籍、阅读进度、阅读时长等。这可以用于数据分析、用户行为研究等领域。 3. 获取书籍内容:通过Python微信读书可以获取到微信读书中的书籍内容,可以实现将书籍内容保存到本地,方便用户离线阅读。 4. 自动化操作:用户可以使用Python微信读书实现一些自动化的操作,比如自动打卡自动跳转至指定的页码等。 使用Python微信读书有一些前提条件,例如需要在微信读书开放平台注册开发者账号,获取到API接口的访问密钥。同时,开发者需要了解微信读书的API文档,了解接口的调用方式和返回数据的格式。 总之,Python微信读书为开发者提供了一种便捷的方式来读取并处理微信读书的内容,为用户的阅读体验和图书信息管理提供了更多的可能性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值