Board logo

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

作者: jjhy521    时间: 2016-4-8 22:02     标题: [已解决]如何从指定网页中提取信息来更改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}
作者: jjhy521    时间: 2016-4-8 22:05

我复制文本后 会留下</h4> 等没用的信息
作者: codegay    时间: 2016-4-8 22:19

本帖最后由 codegay 于 2016-4-8 22:50 编辑

没编程思维的就不要只说怎么做了。就说想要你干嘛。给出网址和你想要的信息部分。

shadowsocks是代理,不是VPN。
作者: jjhy521    时间: 2016-4-8 22:27

回复 3# codegay


    刚刚 那个帖子 被删了 里面写的很详细。。。
我以为不让发网页 所以删了网页而 改成文本
就是下载http://www.ishadowsocks.net网页后 提取230行到233行的SS配置信息 复制到gui-config.txt里进行替换 这样 我直接启动SS就能用了
作者: codegay    时间: 2016-4-8 22:53

回复 4# jjhy521


    原贴也是几百行的代码。。。那不叫详细。
改了配置文件是要重启shadowsocks才生效的,你把重启shadowsocks的要求写进帖子里。这样自动程度可以更高一些。不用手动重启shadowsocks。
作者: jjhy521    时间: 2016-4-8 23:02

回复 5# codegay


    恩 我的问题出现在复制上 复制文本:jp3.iss.tf     会变成 <h4>C服务器地址:jp3.iss.tf</h4>          不知道<h4>C服务器地址*******</h4> 多余文字 该怎么删除
作者: xp3000    时间: 2016-4-8 23:05

你那个是SS吧,
这个才是VPN,不过整点断开,

IP地址:45.79.83.149
用户名:i.vpno.net
密码地址:
http://45.79.83.149/mm.txt
作者: pcl_test    时间: 2016-4-8 23:33

本帖最后由 pcl_test 于 2016-4-10 12:42 编辑
  1. //&cls&cscript -nologo -e:jscript "%~f0"<gui-config.json&pause&exit
  2. var http = new ActiveXObject('MSXML2.XMLHTTP');
  3. http.open('GET', 'http://www.ishadowsocks.net/', false);
  4. http.send();
  5. var i = -1, txt = http.responseText.match(/<section id=\"free\">[\s\S]+?<\/section>/).toString().match(/[^>]*服务[^<]*|[^>]*端口[^<]*|[^>]*密码\s*[::][^<]*|[^>]*加密[^<]*/g);
  6. var config = WSH.StdIn.ReadAll().replace(/"server"[^,]+|"server_port"[^,]+|"password"[^,]+|"method"[^,]+/g, function($0){
  7.     i++;var a = $0.split(':')[0], b = txt[i].split(/[\s::]+/)[1];
  8.     return i==1?a+': '+b:a+': "'+b+'"';
  9. });
  10. WSH.echo(config);
复制代码

作者: jjhy520    时间: 2016-4-9 00:23

回复 8# pcl_test


    好性感的批处理。。。如何写入到文件呢
作者: WHY    时间: 2016-4-9 14:06

本帖最后由 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)
复制代码

作者: xp3000    时间: 2016-4-9 15:59

回复 10# WHY


    能不能详细解释下里面的参数?比如上传个参数作用的说明文档
作者: jjhy521    时间: 2016-4-9 19:55

本帖最后由 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
复制代码

作者: jjhy521    时间: 2016-4-22 21:19

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


    如何提取该网站呢 https://ssltz.top/ss_auto/
    跟您的批处理一样 也是提取服务器信息输出文件
作者: pcl_test    时间: 2016-4-22 23:28

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

作者: jjhy521    时间: 2016-4-23 00:03

回复 14# pcl_test


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

提示
作者: pcl_test    时间: 2016-4-23 00:06

回复 15# jjhy521


    别用utf-8编码保存批处理文件
作者: jjhy521    时间: 2016-4-23 00:11

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



    我测试了您改的这段 是空白的 只是读取了格式
作者: jjhy521    时间: 2016-4-23 00:16

回复  jjhy521


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



    OK了 能看下 我楼上这个导出空白的问题吗
作者: pcl_test    时间: 2016-4-23 00:23

回复 18# jjhy521

配置文件又不一样
作者: jjhy521    时间: 2016-4-23 00:28

回复 19# pcl_test


    非常感谢 我是配置文件弄错了 已经搞定 超级棒 PB被扣的老惨了
作者: jjhy521    时间: 2016-4-23 01:03

本帖最后由 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);
复制代码

作者: jjhy521    时间: 2016-7-28 19:44

回复 19# pcl_test


    能修复下吗 网站代码重新排版了 失效了 最好能说下 怎么改 我以后方便维护
作者: pcl_test    时间: 2016-7-28 21:31

回复 22# jjhy521

8楼网址改为 http://www.ishadowsocks.org
http://www.bathome.net/redirect. ... 4618&ptid=39985




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2