NobyDa / NobyDa.github.io

Welcome to my blog.
https://nobyda.github.io/
16 stars 1 forks source link

记录一次Surge & QuantumultX 脚本开发过程 - NobyDa's Blog #3

Open NobyDa opened 3 years ago

NobyDa commented 3 years ago

https://nobyda.github.io/2021/07/16/BilibiliManga_Js_example/

前言 本文主要记录一次Surge或QuantumultX的脚本开发过程, 过程包括抓包、分析、调试、以及编写脚本. 记录内容为哔哩哔哩漫画积分商城自动抢券脚本.

oniyou commented 2 years ago

抓包在手机app上抓的,那么写脚本是在电脑上写还是手机上写?是否要把手机上抓的包发到PC端进行分析,然后写代码?毕竟在手机上写代码也太不方便了。可以说说你是怎么操作的吗?

NobyDa commented 2 years ago

@oniyou 抓包在手机app上抓的,那么写脚本是在电脑上写还是手机上写?是否要把手机上抓的包发到PC端进行分析,然后写代码?毕竟在手机上写代码也太不方便了。可以说说你是怎么操作的吗?

例如本文这类简单的脚本实现,我个人习惯的话是在手机上大致分析完后弄个笔记记下关键信息,比如url,response。然后笔记同步到PC后,打开vscode就开始写了。手机抓的包甚至不需要导出到PC。。

如果遇到稍微复杂点的就把手机抓的包导出har文件到PC上进一步分析,或者直接在局域网环境下手机连PC抓。 局域网抓包或者查看har的软件有很多,比如fiddler就兼备。

对了,手机写脚本是个噩梦,不推荐。。

yunyingfeng commented 2 years ago

老大有简单点的教程吗,我就想用圈x自己做个签到的脚本

jaychoubaby commented 2 years ago

同求简单点的签到脚本编写思路,想自己写一个招商银行的签到脚本

YuriKing998 commented 2 years ago

大佬,Thor是只有13.5以前的版本才能抓得到吗?

NobyDa commented 2 years ago

大佬,Thor是只有13.5以前的版本才能抓得到吗?

最新版也可以呀,只不过对某些域名下断点有可能会不生效

SimonGino commented 2 years ago

我想请问下,我在vscode上写完了代码,怎么调试呢?是要把代码再放回到surge里面去运行吗?

NobyDa commented 2 years ago

@SimonGino 我想请问下,我在vscode上写完了代码,怎么调试呢?是要把代码再放回到surge里面去运行吗?

可以在局域网开个HTTP后端, VS Code装个"Live Server"插件即可;然后Surge的脚本路径填写局域网后端地址。

如果想实时调试脚本,可使用该脚本:https://gist.github.com/NobyDa/bb09817e439871926dd939dfcb87a586

violet1123 commented 2 years ago

大哥您好!我看了您bili auto regions.js脚本。有三个地方不清楚,想请教一下。1.async function SwitchRegion(play),这个异步函数的参数play代表什么呢?2. if (/\u50c5[\u4e00-\u9fa5]+\u6e2f|%20%E6%B8%AF&/.test(play))我尝试去decode只能看到后面是港或者台的关键字,/\u50c5[\u4e00-\u9fa5]+\u6e2f| 港&/,那前面这些字符是啥意思呢?3..test(play),我猜test是qx内置的api?但是我在qx官方示例没找到这个API。不清楚他的作用

NobyDa commented 2 years ago

大哥您好!我看了您bili auto regions.js脚本。有三个地方不清楚,想请教一下。1.async function SwitchRegion(play),这个异步函数的参数play代表什么呢?2. if (/\u50c5[\u4e00-\u9fa5]+\u6e2f|%20%E6%B8%AF&/.test(play))我尝试去decode只能看到后面是港或者台的关键字,/\u50c5[\u4e00-\u9fa5]+\u6e2f| 港&/,那前面这些字符是啥意思呢?3..test(play),我猜test是qx内置的api?但是我在qx官方示例没找到这个API。不清楚他的作用

  1. 传入的参数内容实际上是剧集标题/URL/状态码中的一种,由调用该函数时的情况决定

  2. 总体上是个包含ASCII码的正则表达式,方括号里的表达式可匹配所有汉字,总体可匹配如 僅XXX港 之类的字符

  3. test是javascript的内置函数

violet1123 commented 2 years ago

谢谢您!网站上我好像不能直接回复。这几天忙着毕业设计没看邮件,不好意思

在 2022年6月15日,上午9:03,NobyDa @.***> 写道:

 大哥您好!我看了您bili auto regions.js脚本。有三个地方不清楚,想请教一下。1.async function SwitchRegion(play),这个异步函数的参数play代表什么呢?2. if (/\u50c5[\u4e00-\u9fa5]+\u6e2f|%20%E6%B8%AF&/.test(play))我尝试去decode只能看到后面是港或者台的关键字,/\u50c5[\u4e00-\u9fa5]+\u6e2f| 港&/,那前面这些字符是啥意思呢?3..test(play),我猜test是qx内置的api?但是我在qx官方示例没找到这个API。不清楚他的作用

传入的参数内容实际上是剧集标题/URL/状态码中的一种,由调用该函数时的情况决定

总体上是个包含ASCII码的正则表达式,方括号里的表达式可匹配所有汉字,总体可匹配如 僅XXX港 之类的字符

test是javascript的内置函数

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.

42vio commented 2 years ago

@SimonGino 我想请问下,我在vscode上写完了代码,怎么调试呢?是要把代码再放回到surge里面去运行吗?

可以在局域网开个HTTP后端, VS Code装个"Live Server"插件即可;然后Surge的脚本路径填写局域网后端地址。

如果想实时调试脚本,可使用该脚本:https://gist.github.com/NobyDa/bb09817e439871926dd939dfcb87a586

调试脚本的局域网地址在手机safari中是可以打开的,但是填写到QX的脚本路径中却显示“似乎已断开互联网的连接”。 请问该怎么解决呢?

IMG_0177