用 AnyProxy 代理实现 Nodejs 手机端 UserScript 使用办法

发布于 1周前 作者 eggper 来自 nodejs/Nestjs

用 AnyProxy 代理实现 Nodejs 手机端 UserScript 使用办法

受到前几天一位V 友金马的微信爬虫启发,这几天在家撸出来的一个简易工具,我把它叫做 NodeMonkey ,主要用来让手机也可以使用用户脚本。

原理很简单,简单设置后运行程序,手机设置好 AnyProxy 的代理,访问特定网页时在页面底部插入 JS 代码。

使用起来也很简单

安装

npm install -g nodemonkey

启动

nodemonkey

安装根证书并信任,手机和电脑都需要,具体可以参考 AnyProxy 项目地址的介绍

把你需要启用的脚本们放到 rules 文件夹(如果没有的话就建立一下)

Windows 在

C:\Users\{UserName}\AppData\Roaming\npm\node_modules\nodemonkey\rules

OSX 在

/usr/local/lib/node_modules/nodemonkey/rules

浏览器访问来让某个脚本生效

http://localhost:3000/monkey?name={UserScriptFileName}

其中{UserScriptFileName}用你希望启用的脚本名字代替,不需要后缀名,由于目前版本太过于简单,以至于只能启用一个脚本,且仅支持脚本里的第一条 [@match](/user/match) 规则 =。= 求不吐槽

访问你的目标网站,看看脚本是否生效,有时候可能需要多刷新一次

项目地址在Github

第一次写 Node 项目,求拍砖,指教,交流,点 STAR ~>_<~

我会说为了这个小东西,我家小 Rainy 都跟我闹脾气了吗 QAQ


12 回复

那个微信爬虫的也只能手动点到文章历史页面才可以的吧
感觉没办法自动化


另外最后一句是秀恩爱的么

#1 其实改改他的源码就可以自动化了,或者说半自动吧,毕竟进入 WebView 还是需要点击操作的。

不过一个设想是通过按键精灵定时脚本的话,我认为可以做到全自动,这就需要自己研究啦~

半夜发贴果然没人看😪😪

作者你好,在吗,有一个问题想请教下

#6 你说。。。

我用你的这个插件想用微信中间人抓取文章阅读数,但是一直没成功,可以讲解一下怎么使用吗,谢谢

#8 建议你看看 的 spider 吧 我这个偏向于通用性的平台

就是用的他的 spider,一直各种报错,联系不上他

#10 如果你知道 GreaseMonkey TamperMonkey 之类的浏览器插件应该就能很好的理解 NodeMonkey 的原理 其实不是作为一个爬虫而存在的……

至于 Wechat Spider 建议你多多调试吧……

在 Node.js 环境下,通过 AnyProxy 代理来实现手机端 UserScript 的使用,可以按照以下步骤进行:

  1. 安装 AnyProxy: 首先,你需要安装 AnyProxy。在 Node.js 环境中,可以通过 npm 安装:

    npm install -g anyproxy
    
  2. 启动 AnyProxy: 启动 AnyProxy 服务,并监听一个端口(例如 8001):

    anyproxy --port 8001
    
  3. 编写 UserScript: 创建一个 UserScript 文件(例如 script.js),并在其中编写你的脚本逻辑。例如,你可以修改请求或响应:

    module.exports = {
        *beforeSendRequest(requestDetail) {
            requestDetail.url = requestDetail.url.replace('example.com', 'test.com');
        },
        *beforeSendResponse(responseDetail) {
            responseDetail.response.body = responseDetail.response.body.replace('oldText', 'newText');
        }
    };
    
  4. 配置 AnyProxy 使用 UserScript: 编辑 AnyProxy 的配置文件(例如 rule.js),并添加对 UserScript 的引用:

    const rule = {
        summary: "My custom rule",
        *beforeSendRequest(requestDetail) {
            // 可以在这里添加其他逻辑
        },
        *beforeDealHttpsRequest(requestDetail, session) {
            require('./script.js')(requestDetail, session);
        }
    };
    module.exports = rule;
    
  5. 配置手机端代理: 将你的手机端设备网络代理设置为 AnyProxy 运行的机器 IP 和端口(例如 192.168.1.100:8001)。

这样,你就可以在 Node.js 环境下通过 AnyProxy 代理实现手机端 UserScript 的使用了。

回到顶部