用 AnyProxy 代理实现 Nodejs 手机端 UserScript 使用办法
用 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
那个微信爬虫的也只能手动点到文章历史页面才可以的吧
感觉没办法自动化
另外最后一句是秀恩爱的么
#1 其实改改他的源码就可以自动化了,或者说半自动吧,毕竟进入 WebView 还是需要点击操作的。
不过一个设想是通过按键精灵定时脚本的话,我认为可以做到全自动,这就需要自己研究啦~
半夜发贴果然没人看😪😪
赞。
作者你好,在吗,有一个问题想请教下
#6 你说。。。
我用你的这个插件想用微信中间人抓取文章阅读数,但是一直没成功,可以讲解一下怎么使用吗,谢谢
#8 建议你看看 的 spider 吧 我这个偏向于通用性的平台
就是用的他的 spider,一直各种报错,联系不上他
#10 如果你知道 GreaseMonkey TamperMonkey 之类的浏览器插件应该就能很好的理解 NodeMonkey 的原理 其实不是作为一个爬虫而存在的……
至于 Wechat Spider 建议你多多调试吧……
在 Node.js 环境下,通过 AnyProxy 代理来实现手机端 UserScript 的使用,可以按照以下步骤进行:
-
安装 AnyProxy: 首先,你需要安装 AnyProxy。在 Node.js 环境中,可以通过 npm 安装:
npm install -g anyproxy
-
启动 AnyProxy: 启动 AnyProxy 服务,并监听一个端口(例如 8001):
anyproxy --port 8001
-
编写 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'); } };
-
配置 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;
-
配置手机端代理: 将你的手机端设备网络代理设置为 AnyProxy 运行的机器 IP 和端口(例如
192.168.1.100:8001
)。
这样,你就可以在 Node.js 环境下通过 AnyProxy 代理实现手机端 UserScript 的使用了。