自动无缝翻页

⭐无缝加载 下一页内容 至网页底部(类似瀑布流,无限滚动,无需手动点击下一页)⭐,目前支持:【所有「Discuz!、Flarum、phpBB、MyBB、Xiuno、XenForo、NexusPHP...」论坛】【百度、谷歌(Google)、必应(Bing)、搜狗、微信、360、Yahoo、Yandex 等搜索引擎...】、贴吧、豆瓣、知乎、NGA、V2EX、起点中文、千图网、千库网、Pixabay、Pixiv、3DM、游侠网、游民星空、NexusMods、Steam 创意工坊、CS.RIN.RU、RuTracker、BT之家、萌番组、动漫花园、樱花动漫、爱恋动漫、AGE 动漫、Nyaa、SrkBT、RARBG、SubHD、423Down、不死鸟、扩展迷、小众软件、【动漫狂、动漫屋、漫画猫、漫画屋、漫画 DB、HiComic、Mangabz、Xmanhua 等漫画网站...】、PubMed、Z-Library、GreasyFork、Github、StackOverflow(以上仅一小部分常见网站,更多的写不下了...

< Commentaires sur 自动无缝翻页

Question / commentaire

X.I.UAuteur
§
Posté le: 2022-02-24

#【作者提醒】申请「NSFW」类网站,以后会以 自定义翻页规则 的方式提供(即不会加到脚本内置规则中)

考虑到老是有人提交 NSFW 网站(即偏成人),正好前几天加了个 自定义翻页规则 功能,所以打算以后把这类网站规则以自定义翻页规则的方式提供。


  • 自定义翻页规则使用方法:点击浏览器右上角的 Tampermonkey 扩展图标,在脚本菜单中选择 自定义翻页规则,将规则粘贴到输入框中保存即可。

唯一需要注意的就是容易出错的 JSON 格式,当只有一个规则时,是这样的(示例):

{
    "aaa": {
        "host": "xxxx",
        "xxxx": "..."
    }
}

当有多个规则时,要这样连接到一起的(最后一个 } 不加逗号):

{
    "aaa": {
        "host": "xxxx",
        "xxxx": "..."
    },
    "bbb": {
        "host": "xxxx",
        "xxxx": "..."
    }
}

因此在写入自定义翻页规则的时候,记得包裹着所有规则的 { } 大括号,以及最容易新手犯错的逗号问题(最后一个 } 都不能有逗号)。

X.I.UAuteur
§
Posté le: 2022-02-24

搜了下提交申请支持的网站记录,找了几个提的比较多的,临时写了下规则:

把以下规则插入规则输入框默认的 { } 中间,保存即可(脚本会自动格式化,无需手动缩进/换行)。

    "xvideos": {
        "host": ["www.xnxx.com","www.xvideos.com"],
        "pager": {
            "nextL": "js;return document.querySelector('a.next-page, a.next').href",
            "pageE": "css;.mozaique > *",
            "replaceE": "css;.pagination",
            "scrollD": 1500
        },
        "function": {
            "bF": "src_bF",
            "bFp": [0,"img[data-src]","data-src"],
            "aF": "document.body.appendChild(document.createElement('script')).textContent = 'xv.thumb_block_initiator.init_listing();';"
        }
    },
    "pornhub": {
        "host": "/\\.pornhub\\.com/",
        "functionS": "if (location.pathname.indexOf('/video') > -1) {return true;}",
        "style": ".footerContentWrapper, .pre-footer {display: none !important;}",
        "pager": {
            "nextL": "css;li.page_next > a",
            "pageE": "css;#videoSearchResult > li.pcVideoListItem, #videoCategory > li.pcVideoListItem",
            "replaceE": "css;.pagination3",
            "scrollD": 1500
        },
        "function": {
            "bF": "src_bF",
            "bFp": [0,"img[data-src]","data-src"]
        }
    },
    "91porn": {
        "host": ["91porn.com","0118.workarea7.live"],
        "functionS": "if (location.pathname == '/v.php') {return true;}",
        "pager": {
            "nextL": "id('paging')//a[text()='»']",
            "pageE": "css;.row .row > div",
            "replaceE": "css;#paging",
            "scrollD": 1500
        }
    }

小提示:如果目标网站有多个域名,可以用数组方式指定(就像上面最后一个规则的 "host": 一样)。
小提示:如果你觉得触发翻页有点晚了(即能看到加载过程,不够无缝),那么可以调高规则中的 "scrollD": 1500 数值,越大就越早触发翻页。

X.I.UAuteur
§
Posté le: 2022-02-25

因为 v4.9.5 版本支持直接用正则表达式来匹配 URL 了(主要是为了方便 自定义翻页规则),所以我干脆将 functionS 改名至 url,脚本会自动修改的,无需手动修改。楼上写的规则也同样兼容,不过还没用上面规则的,请直接用下面这个最新规则:

"pornhub": {
    "host": "/\\.pornhub\\.com/",
    "url": "/\\/video/",
    "style": ".footerContentWrapper, .pre-footer {display: none !important;}",
    "pager": {
        "nextL": "css;li.page_next > a",
        "pageE": "css;#videoSearchResult > li.pcVideoListItem, #videoCategory > li.pcVideoListItem",
        "replaceE": "css;.pagination3",
        "scrollD": 1500
    },
    "function": {
        "bF": "src_bF",
        "bFp": [0,"img[data-src]","data-src"]
    }
},
"91porn": {
    "host": ["91porn.com","0118.workarea7.live"],
    "url": "/\\/v\\.php/",
    "pager": {
        "nextL": "id('paging')//a[text()='»']",
        "pageE": "css;.row .row > div",
        "replaceE": "css;#paging",
        "scrollD": 1500
    }
}
X.I.UAuteur
§
Posté le: 2022-02-25

再补充两个反馈提的比较多的。
理论上已经匹配了所有镜像站,除非官方改了镜像域名的命名方式,到时候把下面 "host": "xxx" 里面的域名正则改成具体域名即可。

"JavDB": {
    "host": "/^javdb/",
    "style": ".grid.columns {height: auto !important;} .grid-item.column{position: static !important; float: left !important; height: 313px !important;}",
    "pager": {
        "nextL": "css;a.pagination-next",
        "pageE": "css;.grid-item.column, .section-container > div",
        "replaceE": "css;.pagination",
        "scrollD": 1000
    },
    "function": {
        "bF": "src_bF",
        "bFp": [0,"img[data-src]","data-src"]
    }
},
"JavBus": {
    "host": "/\\.jav.+|.+jav\\./",
    "style": "#waterfall {height: auto !important;} #waterfall > .item {position: static !important; float: left !important; height: 400px !important;}",
    "pager": {
        "nextL": "css;#next",
        "pageE": "css;#waterfall > .item",
        "replaceE": "css;.pagination",
        "scrollD": 1500
    }
}
X.I.UAuteur
§
Posté le: 2022-02-26

突然发现上面写的第一个 xvideos 规则里的 "nextL": 在试验执行 JS 代码功能后忘记改回去了。。。
虽然不影响使用,但强迫症看着别扭(Greasyfork 不能修改就很难受),我干脆再发一遍吧。


顺便提一下,为了进一步简化,最新版本将去掉 css; 这个选择器标识,无论是 xpath 还是 css 都由脚本自行分别~
当然,脚本内也做了兼容处理,脚本会自动移除自定义翻页规则中的 css; 字符的。


因为 Greasyfork 编辑不方便,因此这里可能不会一直更新下去,后续可能会把规则集中发到: https://github.com/XIU2/UserScript/issues/176


"xvideos": {
    "host": ["www.xnxx.com","www.xvideos.com"],
    "pager": {
        "nextL": "a.next-page, a.next",
        "pageE": ".mozaique > *",
        "replaceE": ".pagination",
        "scrollD": 1500
    },
    "function": {
        "bF": "src_bF",
        "bFp": [0,"img[data-src]","data-src"],
        "aF": "document.body.appendChild(document.createElement('script')).textContent = 'xv.thumb_block_initiator.init_listing();';"
    }
},
"pornhub": {
    "host": "/\\.pornhub\\.com/",
    "url": "/\\/video/",
    "style": ".footerContentWrapper, .pre-footer {display: none !important;}",
    "pager": {
        "nextL": "li.page_next > a",
        "pageE": "#videoSearchResult > li.pcVideoListItem, #videoCategory > li.pcVideoListItem",
        "replaceE": ".pagination3",
        "scrollD": 1500
    },
    "function": {
        "bF": "src_bF",
        "bFp": [0,"img[data-src]","data-src"]
    }
},
"91porn": {
    "host": ["91porn.com","0118.workarea7.live"],
    "url": "/\\/v\\.php/",
    "pager": {
        "nextL": "id('paging')//a[text()='»']",
        "pageE": ".row .row > div",
        "replaceE": "#paging",
        "scrollD": 1500
    }
},
"JavDB": {
    "host": "/^javdb/",
    "style": ".grid.columns {height: auto !important;} .grid-item.column{position: static !important; float: left !important; height: 313px !important;}",
    "pager": {
        "nextL": "a.pagination-next",
        "pageE": ".grid-item.column, .section-container > div",
        "replaceE": ".pagination",
        "scrollD": 1000
    },
    "function": {
        "bF": "src_bF",
        "bFp": [0,"img[data-src]","data-src"]
    }
},
"JavBus": {
    "host": "/\\.jav.+|.+jav\\./",
    "style": "#waterfall {height: auto !important;} #waterfall > .item {position: static !important; float: left !important; height: 400px !important;}",
    "pager": {
        "nextL": "#next",
        "pageE": "#waterfall > .item",
        "replaceE": ".pagination",
        "scrollD": 1500
    }
}
X.I.UAuteur
§
Posté le: 2022-02-27

感觉这样搞还是有点不方便,就干脆又加了个 外置翻页规则列表,把我最近这几天写的 自定义翻页规则 都给放进去了(后续也会把一些简单的网站规则都放进去),这样用户只需要 更新外置翻页规则 即可。当然,自定义翻页规则依然保留,提供给有动手能力的人~

§
Posté le: 2022-02-27

感谢作者的辛苦付出

§
Posté le: 2022-02-27

作者在主页放个 Paypal 捐赠码吧

§
Posté le: 2022-08-23

测试无效~~~

Poster une réponse

Connectez-vous pour poster une réponse.