[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]如何从指定网页中提取信息来更改Shadowsocks代理软件配置文件中的指定内容?

本帖最后由 jjhy521 于 2016-4-9 19:57 编辑

先为刚刚发帖不符合版规 道歉 我简洁的说吧
下载网页
http://www.ishadowsocks.net

复制网页文本230~233行内容到gui-config.txt里信息进行替换

index.txt里230行~222行内容如下
  1.                     <h4>C服务器地址:jp3.iss.tf</h4>
  2.                     <h4>端口:443</h4>
  3. <h4>C密码:17438512</h4>
  4.                     <h4>加密方式:aes-256-cfb</h4>
复制代码
gui-config.txt文本内容如下[code]{
"configs" : [
  {
"server" : "www.ithubs.cn",
"server_port" : 443,
"password" : "1234567",
"method" : "aes-256-cfb",
"remarks" : ""}

],
"strategy" : null,
"index" : 0,
"global" : false,
"enabled" : false,
"shareOverLan" : false,
"isDefault" : false,
"localPort" : 1080,
"pacUrl" : null,
"useOnlinePac" : false,
"availabilityStatistics" : false}
1

评分人数

TOP

回复 19# pcl_test


    能修复下吗 网站代码重新排版了 失效了 最好能说下 怎么改 我以后方便维护

TOP

本帖最后由 jjhy521 于 2016-4-23 21:18 编辑

回复 19# pcl_test


    我按照您的改了下 可以了 就是导出有问题 是空白的
主要是加了关闭Shadowsocks.exe进程会导致文件失效 如果删除关闭进程就正常 我应该怎么改比较好
  1. taskkill /f /im Shadowsocks.exe
  2. //&cls&cscript -nologo -e:jscript "%~f0"<gui-config.ini > gui-config.json&start Shadowsocks.exe&exit
  3. var http = new ActiveXObject('MSXML2.XMLHTTP');
  4. http.open('GET', 'https://ssltz.top/ss_auto', false);
  5. http.send();
  6. var i = -1, txt = http.responseText.match(/服务器地址[^<]+|端口[^<]+|密码[^<]+|加密方式[^<]+/g);
  7. var config = WSH.StdIn.ReadAll().replace(/"server"[^,]+|"server_port"[^,]+|"password"[^,]+|"method"[^,]+/g, function($0){
  8.     i++;var a = $0.split(':')[0], b = txt[i].split(/[\s::]+/)[1];
  9.     return i==1?a+': '+b:a+': "'+b+'"';
  10. });
  11. WSH.echo(config);
复制代码

TOP

回复 19# pcl_test


    非常感谢 我是配置文件弄错了 已经搞定 超级棒 PB被扣的老惨了

TOP

回复 18# jjhy521

配置文件又不一样

TOP

回复  jjhy521


    别用utf-8编码保存批处理文件
pcl_test 发表于 2016-4-23 00:06



    OK了 能看下 我楼上这个导出空白的问题吗
1

评分人数

    • pcl_test: 指定回应某楼层的在相应楼层点回复,少引用PB -4

TOP

pcl_test 发表于 2016-4-8 23:33



    我测试了您改的这段 是空白的 只是读取了格式

TOP

回复 15# jjhy521


    别用utf-8编码保存批处理文件

TOP

回复 14# pcl_test


    mshta http://bathome.net/s/hta
改成mshta http://bathome.net/s/hta/

提示

TOP

  1. mshta http://bathome.net/s/hta "web('https://ssltz.top/ss_auto').match(/服务器地址[^<]+|端口[^<]+|密码[^<]+|加密方式[^<]+/g).join('\r\n')"
复制代码

TOP

WHY 发表于 2016-4-9 14:06


    如何提取该网站呢 https://ssltz.top/ss_auto/
    跟您的批处理一样 也是提取服务器信息输出文件

TOP

本帖最后由 jjhy521 于 2016-4-9 19:57 编辑

回复 10# WHY


    太棒了 前面代码改了下 自动写入gui-config.json  配合Shadowsocks.exe 运行完美
  1. @if (0)==(0) echo off
  2. type gui-config.txt | cscript //nologo //e:jscript "%~f0" > gui-config.json
  3. exit
复制代码

TOP

回复 10# WHY


    能不能详细解释下里面的参数?比如上传个参数作用的说明文档

TOP

本帖最后由 WHY 于 2016-4-11 22:45 编辑
  1. @if (0)==(0) echo off
  2. type gui-config.txt | cscript //nologo //e:jscript "%~f0"
  3. pause & exit
  4. @end
  5. var getContent = function(body){
  6.     var ado = new ActiveXObject('ADODB.Stream');
  7.     ado.Type = 1;
  8.     ado.Open();
  9.     ado.Write(body);
  10.     ado.Position = 0;
  11.     ado.Type = 2;
  12.     ado.Charset = 'utf-8';
  13.     var arr = ado.ReadText(-1).replace(/\r?\n/g, '\n').split('\n');
  14.     return arr.slice(229, 233);
  15. }
  16. var http = new ActiveXObject('MSXML2.XMLHTTP');
  17. http.open('GET', 'http://www.ishadowsocks.net/', false);
  18. http.send();
  19. var a = getContent(http.responseBody);
  20. var b = ['"server"', '"server_port"', '"password"', '"method"'];
  21. var s = WSH.StdIn.ReadAll();
  22. for(var i=0; i<b.length; i++){
  23.     a[i] = a[i].split(':')[1].split(/<\/h4>/i)[0];
  24.     s = s.replace(
  25.         new RegExp('^(' + b[i] + ')([^\r\n]*)', 'im'),
  26.         function(s0, s1, s2){
  27.             return s1 + ' : ' + (s2.indexOf('"')>=0 ? '"' + a[i] + '",' : a[i] + ',');
  28.         }
  29.     )
  30. }
  31. WSH.Echo(s)
复制代码

TOP

返回列表