Pagetual

Perpetual pages - powerful auto-pager script. Auto fetching next paginated web pages and inserting into current page for infinite scroll. Support thousands of web sites without any rule.

< Feedback on Pagetual

Review: Good - script works

§
Posted: 2022-07-04

请考虑出一个规则教程。

我尝试为腾讯动漫这个网站写规则,但我尝试几回写法都不生效。虽然有文档,但是对比已有规则库尝试理解也无果。

要是能有一个教程,阐述文档的命令的意思以及用法,这样能简化规则的上手门槛。

[
{
"author":"Poto",
"action":"1",
"name": "腾讯动漫",
"url": "^https://ac\\.qq\\.com",
"pageElement":"div.cor-roast>*",
"nextLink":"ul.ctrl-list a.main_control_next"
}
]

hoothinAuthor
§
Posted: 2022-07-04

你的写法没错,只是腾讯动漫有安全限制,控制台有输出错误信息的。

类似于这种网站需要自己爬取页面读取参数来构造图片拼接,必须要用到pageInit pageAction,类似于superpreloader里面的documentFilter。

每个这种需要写代码而非静态选择器的站都不一样,需要个别分析,没有通用的解决方案。

我有空写一个吧

hoothinAuthor
§
Posted: 2022-07-04
Edited: 2022-07-04

稍稍看了下,还挺复杂的,需要先抓取下一页。然后获取window.nonce(页面里写成了window["no"+"nce"])与window.DATA(在页脚),这俩都是写死在页面里的。再用

function Base() {
    _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    this.decode = function(c) {
        var a = "",
            b, d, h, f, g, e = 0;
        for (c = c.replace(/[^A-Za-z0-9\+\/\=]/g, ""); e < c.length;) b = _keyStr.indexOf(c.charAt(e++)), d = _keyStr.indexOf(c.charAt(e++)), f = _keyStr.indexOf(c.charAt(e++)), g = _keyStr.indexOf(c.charAt(e++)), b = b << 2 | d >> 4, d = (d & 15) << 4 | f >> 2, h = (f & 3) << 6 | g, a += String.fromCharCode(b), 64 != f && (a += String.fromCharCode(d)), 64 != g && (a += String.fromCharCode(h));
        return a = _utf8_decode(a)
    };
    _utf8_decode = function(c) {
        for (var a = "", b = 0, d = c1 = c2 = 0; b < c.length;) d = c.charCodeAt(b), 128 > d ? (a += String.fromCharCode(d), b++) : 191 < d && 224 > d ? (c2 = c.charCodeAt(b + 1), a += String.fromCharCode((d & 31) << 6 | c2 & 63), b += 2) : (c2 = c.charCodeAt(b + 1), c3 = c.charCodeAt(b + 2), a += String.fromCharCode((d & 15) << 12 | (c2 & 63) << 6 | c3 & 63), b += 3);
        return a
    }
}
var B = new Base(),
    T = window['DATA'].split(''),
    N = window['nonce'],
    len, locate, str;
N = N.match(/\d+[a-zA-Z]+/g);
len = N.length;
while (len--) {
    locate = parseInt(N[len]) & 255;
    str = N[len].replace(/\d+/g, '');
    T.splice(locate, str.length)
}
T = T.join('');
_v = JSON.parse(B.decode(T));

解密。得到 _v ,图片就在 _v.picture 里。遍历后写到页面,再改改css就行了。

我其实挺不喜欢破解这些“大厂”产品的,自己产品用户体验做得不怎么样,防人水平倒是一流。破解了还有可能被盯上发律师函。

你还是自己写吧,思路就是上面那些。可以写json规则,也可以写个子脚本方便管理,实现一个window.pagetualPageAction就行。记得要用action:0

Post reply

Sign in to post a reply.