Board logo

标题: [文本处理] [已解决]怎么用批处理提取网页的全部链接 [打印本页]

作者: hlzj88    时间: 2014-6-29 00:02     标题: [已解决]怎么用批处理提取网页的全部链接

本帖最后由 hlzj88 于 2014-6-29 17:22 编辑

最近在用批处理做小说下载整合bat,一般网页的提取已经解决,因为他们是一行一个链接。但想具有更好的提取整理功能,遇到类似这个地址的,不知道怎么提取了。
http://www.abcsee.net/book/27/27026/ 因为这个的每行都有几个链接。希望能得到帮助。同时也希望能兼容每行一个链接的网页地址。http://www.9laidu.com/0/278/index.html
要求是提取的网页链接能以每行
开篇(一)|http://www.abcsee.net/book/27/27026/6717602.html或开篇(一)|6717602.html
这样的形式保存。
作者: CrLf    时间: 2014-6-29 01:06

一万多字的行无法直接处理,要么借助 js/vbs,要么用第三方,要么用 sep/p 拼接
作者: CrLf    时间: 2014-6-29 01:16

  1. sed "/^<dd>/!d;s/</\n&/g" "妖瞳公主 最新章节 无弹窗广告 - 北辰文学网.htm"|sed "/^<a/!d;s/.*\x22\(.*\)\x22>/\1|/g"
复制代码

作者: hlzj88    时间: 2014-6-29 17:21

回复 3# CrLf

谢谢,sed尝试了,版本不对,用htox32c 后每行只有4个链接,自己解决了。
作者: Batcher    时间: 2014-6-30 21:50

回复 4# hlzj88


把你的代码发出来给大家分享一下吧

另外,可以试试这个sed版本:
http://pan.baidu.com/s/1pJkDALt
作者: terse    时间: 2014-7-1 11:19

发给BAT+JS 仅测试一楼数据
  1. @if(0)==(0) echo off
  2. cscript -nologo -e:jscript %0 <a.htm
  3. pause&exit
  4. @end
  5. var re = /<a href="(\d+\.html)".*?>(.+?)<\/a>/ig;
  6. var rs = WScript.StdIn.ReadAll().match(re);
  7. var length = rs.length;
  8. for (i=0; i<length; i++) {
  9.      WScript.Echo(rs[i].replace(re,'$2 | $1'));
  10. }
复制代码

作者: hlzj88    时间: 2014-7-1 19:55

回复 5# Batcher
关于整理后链接的提取,代码我已经发这个地址。不多占论坛空间。
http://www.bathome.net/thread-30798-1-1.html




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