Board logo

标题: [文本处理] [已解决]以正斜杠/分割,批处理如何截取网页链接地址的最后一段? [打印本页]

作者: hlzj88    时间: 2014-6-4 22:18     标题: [已解决]以正斜杠/分割,批处理如何截取网页链接地址的最后一段?

本帖最后由 pcl_test 于 2016-8-21 14:18 编辑

假如地址是这样的http://www.9laidu.com/0/278/index.html,当然,为了更广泛的通用性,不限制/的多少。要截取最后一列,怎么截取。求助!

顺便,上面地址是很好的玄幻网络小说。非常精彩。
作者: hlzj88    时间: 2014-6-4 22:48

弟兄们,都看小说去了吗?
作者: apang    时间: 2014-6-4 22:51

for %%a in ("http://www.9laidu.com/0/278/index.html") do echo,%%~nxa
作者: hlzj88    时间: 2014-6-4 22:55

啊 居然是这样的,把我tokens坏了。

谢谢!!
作者: DAIC    时间: 2014-6-4 23:11

来个不一样的
  1. @echo off
  2. set "str=http://www.9laidu.com/0/278/index.html"
  3. :loop
  4. set "str=%str:*/=%"
  5. if "%str:*/=%" neq "%str%" (
  6.     goto :loop
  7. ) else (
  8.     echo,%str%
  9. )
  10. pause
复制代码

作者: hlzj88    时间: 2014-6-4 23:24

回复 5# DAIC
恩 按标题来说,这是最合题的。没想到。
作者: pcl_test    时间: 2016-8-21 16:44

本帖最后由 pcl_test 于 2016-8-21 16:45 编辑
  1. //&cls&cscript -nologo -e:jscript "%~f0"&pause&exit
  2. //就来读(9来读)小说下载
  3. //编码转换
  4. function BintoStr(strBin,strCharset){
  5.     try{
  6.         var stream = new ActiveXObject('ADODB.Stream')
  7.         stream.Type = 1
  8.         stream.Mode = 3
  9.         stream.Open()
  10.         stream.Write(strBin)
  11.         stream.Position = 0
  12.         stream.Type = 2
  13.         stream.Charset = strCharset
  14.         return stream.ReadText
  15.     }
  16.     catch(e){}
  17. }
  18. //获取网页内容
  19. function getHtmlTxt(url, strCharset){
  20.     try{
  21.         var http = new ActiveXObject('MSXML2.XMLHTTP')
  22.     }
  23.     catch(e){
  24.         var http = new ActiveXObject('WinHttp.WinHttpRequest.5.1')
  25.     }
  26.     http.open('GET', url, false)
  27.     http.send()
  28.     return BintoStr(http.ResponseBody, strCharset);
  29. }
  30. //去除html标签
  31. function Del(str){return str.replace(/<[^<]*?>|^\s*|\s*$/g,'').replace(/&nbsp;/g,' ')}
  32. var fso = new ActiveXObject('Scripting.FileSystemObject');
  33. var url = 'http://www.9laidu.com/23/23989/';
  34. //获取章节
  35. var m = getHtmlTxt(url, 'gb2312').match(/<h1\s?[^<]*>[\s\S]+?<\/h1>|<ol\s?[^<]*>[\s\S]+?<\/ol>/ig)
  36. if(m){
  37.     var title = Del(m[0]);
  38.     var chapter = {};
  39.     var reg = new RegExp("<a href=\"([^\"]+?)\"[^<]*?>([\\s\\S]+?)<\\/a>","ig");
  40.     var result;
  41.     while((result = reg.exec(m[1])) != null){
  42.         chapter[result[1].replace(/^.+\//,'')] = result[2];
  43.     }
  44. }
  45. //获取正文
  46. if(chapter){
  47.     for(var c in chapter){
  48.         var text = getHtmlTxt(url+c, 'gb2312').match(/<div class="inner">([\s\S]+?)<\/div>/i)[1]
  49.         if(text){
  50.             var f = fso.OpenTextFile(title+'.txt', 8, true);
  51.             f.Write('【'+chapter[c]+'】\r\n'+Del(text)+'\r\n--------------------------------------------\r\n\r\n');
  52.             f.Close();
  53.             WSH.echo(chapter[c]);
  54.         }
  55.     }
  56. }
复制代码





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