找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25653|回复: 6

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

[复制链接]
发表于 2014-6-4 22:18:06 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-8-21 14:18 编辑

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

顺便,上面地址是很好的玄幻网络小说。非常精彩。

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2014-6-4 22:48:38 | 显示全部楼层
弟兄们,都看小说去了吗?
发表于 2014-6-4 22:51:28 | 显示全部楼层
for %%a in ("http://www.9laidu.com/0/278/index.html") do echo,%%~nxa

评分

参与人数 1技术 +1 收起 理由
hlzj88 + 1 思路决定方法

查看全部评分

 楼主| 发表于 2014-6-4 22:55:57 | 显示全部楼层
啊 居然是这样的,把我tokens坏了。

谢谢!!
发表于 2014-6-4 23:11:15 | 显示全部楼层
来个不一样的
  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
复制代码

评分

参与人数 1技术 +1 收起 理由
hlzj88 + 1 思路决定方法

查看全部评分

 楼主| 发表于 2014-6-4 23:24:46 | 显示全部楼层
回复 5# DAIC
恩 按标题来说,这是最合题的。没想到。
发表于 2016-8-21 16:44:02 | 显示全部楼层
本帖最后由 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. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 04:33 , Processed in 0.040689 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表