V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dsphper
V2EX  ›  程序员

微信阅读网页版的骚操作

  •  1
     
  •   dsphper ·
    dsphperr · 2019-11-25 11:54:31 +08:00 · 6687 次点击
    这是一个创建于 1585 天前的主题,其中的信息可能已经有所发展或是发生改变。

    DOM 打乱,每个文字用 top left 定位的. avatar 比之前的百度文库部分文字用图片替换的思路兼容性方面强了不止一点。

    不过好像然并软,几行代码就能还原了。

    
    var list = {};
    var all = document.getElementsByClassName('absolute');
    for( var i=0;i<=all.length;i++) {
    
    	try {
    		var iT = all[i].offsetTop;
    		var iL = all[i].offsetLeft;
    		var text = all[i].innerText;
    		if(list.hasOwnProperty(iT)) {
    			list[iT][iL] = text;
    		} else {
    			list[iT] = {};
    			list[iT][iL] = text;
    		}
    	} catch(error) {
    
    	}
    	
    }
    for (key in list) {
    	console.log(Object.values(list[key]).join(""));
    }
    

    微信阅读:https://weread.qq.com/

    第 1 条附言  ·  2019-12-12 10:50:46 +08:00

    微信阅读改成了canvas渲染了,卡的我的小mac风扇呼呼转,现给出简洁阅读模式开启方法,

    开启简洁阅读模式:

    document.getElementsByTagName('html')[0].innerHTML=__INITIAL_STATE__.reader.chapterContentHtml
    

    也可以复制到自己喜欢的编辑器阅读

    复制到编辑器阅读:

    document.getElementsByTagName('html')[0].innerText
    

    感谢@gltjk 老哥找出混淆前的变量,

    27 条回复    2023-05-07 21:25:53 +08:00
    Les1ie
        1
    Les1ie  
       2019-11-25 12:35:22 +08:00
    厉害
    shintendo
        2
    shintendo  
       2019-11-25 13:02:59 +08:00   ❤️ 2
    截屏 OCR 一剑破万法
    shintendo
        3
    shintendo  
       2019-11-25 13:05:13 +08:00
    话说,这个用脚本计算一下相对位置也不难还原吧,毕竟最终显示效果是整齐的,是不是还不如那种替换字体的?
    sobigfish
        4
    sobigfish  
       2019-11-25 13:15:01 +08:00
    都是防菜鸟不防高手的, 也没那个时间去耗这些吧
    suisetai
        5
    suisetai  
       2019-11-25 13:16:58 +08:00 via iPhone
    这个还原出来 没有换行和空格吧……
    hiluxi
        6
    hiluxi  
       2019-11-25 14:25:10 +08:00
    这么做的目的是什么?
    tonnycao
        7
    tonnycao  
       2019-11-25 14:27:42 +08:00
    做免费小说的还是有兴趣的
    yingqi7
        8
    yingqi7  
       2019-11-25 14:30:36 +08:00 via iPhone
    @hiluxi 这样做增加了一点盗版门槛,相应的盗版流出会少很多,保障微信阅读可以长期留存大量用户。
    672795574
        9
    672795574  
       2019-11-25 14:32:07 +08:00
    $$('span[data-wr-id]').sort((a,b)=>a.style.top != b.style.top ? parseInt(a.style.top) - parseInt(b.style.top) : parseInt(a.style.left) - parseInt(b.style.left)).map(s=>s.textContent).join('')


    @hiluxi 目的是复制和黏贴吧
    dioxide
        10
    dioxide  
       2019-11-25 14:43:45 +08:00
    很多网文站的常规反扒操作
    annielong
        11
    annielong  
       2019-11-25 15:11:23 +08:00
    直接 ocr,看起来字体很标准,应该识别率比价高,当年某点那种 ocr 不出来,直接截图传播
    hiluxi
        12
    hiluxi  
       2019-11-25 15:19:51 +08:00
    每个字都要算位置? 这样对浏览器要求太高了。。。
    malthae
        13
    malthae  
       2019-11-25 15:23:16 +08:00
    OCR 有什么推荐的吗
    xuelang
        14
    xuelang  
       2019-11-25 16:33:58 +08:00
    定位方法略简陋,估计很快就会升级了
    twelvechen
        15
    twelvechen  
       2019-11-25 19:08:21 +08:00
    话说微信读书时长换书币的政策又变了
    Telegram
        16
    Telegram  
       2019-11-25 19:29:18 +08:00
    @hiluxi #12 看小说时,一页也就几百个字,对现在手机性能来说,定位这几百个字,消耗不大。
    Telegram
        17
    Telegram  
       2019-11-25 19:32:34 +08:00
    @hiluxi #12 好吧,我错了,PC 端浏览可以往下滚动,一个章节,几万个字,直接上万个 Nodes
    136608135
        18
    136608135  
       2019-11-25 19:38:44 +08:00
    想用这个挡住一小部分人吧。
    AX5N
        19
    AX5N  
       2019-11-25 19:40:02 +08:00
    “不过好像然并软,几行代码就能还原了。”
    你慢慢还原吧,微信悄咪咪改一下算法你都不知道,就算知道你还得跟着改。
    gltjk
        20
    gltjk  
       2019-11-25 21:33:00 +08:00
    看了看源代码,在开发者工具里试了试,发现最简单的方法是拿到混淆之前的代码😂:__INITIAL_STATE__.reader.chapterContentHtml
    markx
        21
    markx  
       2019-11-26 08:14:37 +08:00
    好是好,就是 js 太高级了。 有没有办法在 kindle 的浏览器里面用?
    markx
        22
    markx  
       2019-11-26 08:15:54 +08:00
    @markx 呃…… 👆 我不是指还原内容的骚操作, 我是指有没有办法可以在 kindle 里用微信阅读网页版。
    LeoooY
        23
    LeoooY  
       2019-11-26 09:51:11 +08:00
    6666
    yopv2
        24
    yopv2  
       2019-11-26 16:36:20 +08:00
    很好的解决了我部分文字要复制的需求
    xunli
        25
    xunli  
       2019-12-11 19:51:18 +08:00
    已经改成 canvas 实现了
    dsphper
        26
    dsphper  
    OP
       2019-12-12 10:58:21 +08:00
    @xunli 看我的 Append
    Bronts
        27
    Bronts  
       326 天前
    __INITIAL_STATE__.reader.chapterContentHtml
    这个好像也没了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1033 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:26 · PVG 06:26 · LAX 15:26 · JFK 18:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.