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

[文本处理] [已解决]批处理怎样获取链接的地址?

[复制链接]
发表于 2012-2-24 18:19:21 | 显示全部楼层 |阅读模式
本帖最后由 QIAOXINGXING 于 2012-2-24 22:09 编辑

打开网站  http://www.4q8q.com/gaoxiaoqianming/ 可以看到:

国外:思想和才能才是王道,国内:关系和马屁才能横行 2012-02-24
用你的笑容去改变这个世界,别让这个世界改变了你的笑容 2012-02-24
人生的悲惨在于:辛辛苦苦的作了一晚上内容香艳的美梦,第二天早 2012-02-24
qq搞笑个性签名:想当年,顶风尿十丈;叹如今,顺风尿湿鞋 2012-02-23
下面我来采访一下你:作为一名禽兽,你是否觉得你的压力很大 2012-02-23
等等....................................

如何获取标题对应的链接地址,并与后面的日期相对应??
也就是形成一个文本,内容是:

http://www.4q8q.com/gaoxiaoqianming/20124275.html  2012-02-24
http://www.4q8q.com/gaoxiaoqianming/20124274.html  2012-02-24
等等..........................................


我现在碰到的问题是:获取了网页源码后,无法用批处理将有用信息提取出来。

评分

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

查看全部评分

发表于 2012-2-24 20:38:42 | 显示全部楼层

  1. @echo off
  2. gsed -rn "/<div class=\x22wrap\x22>/{n;n;n;:a;s/(\/gaoxiaoqianming\/[0-9]{1,}\.html)[^<]+<\/a>([0-9]{4}-[0-9]{2}-[0-9]{2})(.*)/\3|\1\t\2/;ta;s/[^|]+|//;s#\|#\r\nhttp://www.4q8q.com#g;p}" 1.html>1.txt
  3. start 1.txt
复制代码
gsed下载地址:http://bbs.bathome.net/thread-13353-1-1.html

评分

参与人数 1技术 +1 收起 理由
QIAOXINGXING + 1 解决问题!!

查看全部评分

发表于 2012-2-24 21:02:53 | 显示全部楼层
  1. sed "s/<\/li>/\n/g" a.htm | sed "/-[0-2][0-9]$/!d; s/<li><a href=./http:\/\/www.4q8q.com/; s/. title.*>/ /" >a.txt
复制代码

评分

参与人数 1技术 +1 收起 理由
QIAOXINGXING + 1 解决问题了!!

查看全部评分

发表于 2012-2-24 21:45:42 | 显示全部楼层
3楼先分行再过滤,思路更容易理解,不像我在2楼那样绕来绕去,高明。
发表于 2012-2-24 22:51:56 | 显示全部楼层
来个纯P  凑热闹了

  1. @echo off&Setlocal EnableDelayedExpansion
  2. (for /f "tokens=*" %%i in ('FINDSTR "</a>[1-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]</li>" "a.txt"') DO (
  3.     set "str=%%i"
  4.     set "str=!str:"= !"
  5.     FOR %%j in (!str!) do (
  6.         set "str=%%~j"
  7.         if "%%~xj" equ ".html" set "var=http://www.4q8q.com%%~j"
  8.         if "!str:</a>=!" neq "%%~j" (
  9.            set "str=!str:*</a>=!"
  10.            echo !var! !str:~,10!
  11.         )
  12.     )
  13. ))>b.txt
  14. PAUSE
复制代码

评分

参与人数 1技术 +6 收起 理由
cjiabing + 6 不错,学习下~!

查看全部评分

发表于 2012-2-24 23:04:55 | 显示全部楼层
麻烦点~!
如果与wget.exe放在一起可以直接下载分析!~
分析结果有点模糊,可以先导出再进行其他处理。
前面的内容是你需要的,后面的可能没有时间。

  1. @echo off&setlocal enabledelayedexpansion
  2. if "%1"=="" (set /p "v=    拖入文件执行或用wget.exe直接回车下载执行……") else call :GXQM %1
  3. if not "%v%"=="" call :GXQM %v%
  4. if exist "%~dp0wget.exe" "%~dp0wget.exe" -O index.txt  "http://www.4q8q.com/gaoxiaoqianming/"&&call :GXQM index.txt
  5. goto :eof
  6. :GXQM
  7. cls&for /f "tokens=* delims=<>= " %%a in ('findstr /i "target=_blank" %1') do (
  8. for   %%i in (%%a) do (
  9. for /f "tokens=1,2,3,4,5* delims=<>= " %%l in ("%%i") do (
  10.     if not "%%l"==""  if /i not "%%l"=="li"  if /i not "%%l"=="a" if /i not "%%l"=="href" if /i not "%%l"=="title" if /i not "%%l"=="_blank" if /i not "%%l"=="target" echo;链接:%%l|findstr /i " /gaoxiaoqianming/ "
  11.     if not "%%m"==""  if /i not "%%m"=="/a" if /i not "%%m"=="a" if /i not "%%m"=="li" echo;标题:%%m
  12.     if not "%%o"=="" if /i not "%%o"=="/li"  echo;时间:%%o
  13. )))
  14. pause


复制代码

评分

参与人数 1技术 +1 收起 理由
QIAOXINGXING + 1 乐于助人

查看全部评分

发表于 2012-2-25 08:58:37 | 显示全部楼层
回复 4# namejm


你那个方法用来学习标签的用法也不错
 楼主| 发表于 2012-2-25 13:08:28 | 显示全部楼层
受楼上两位的启发:
  1. @echo off&setlocal enabledelayedexpansion&cd /d "%~dp0"

  2. for /f "delims=" %%i in ('findstr "2012-[0-2][0-9]-[0-9][0-9]" "a.html"') do (
  3.   for %%i in (%%i) do (set "str=!str!#%%i")

  4.   set "tstr=!str:href=;!"
  5.   set "n=0"
  6.   for %%a in (!tstr!) do (
  7.     set /a "n+=1"
  8.     set "url=%%a"
  9.     set "url!n!=!url:~2,30!"
  10.   )

  11.   set "tstr=!str:</a>=;!"
  12.   set "n=0"
  13.   for %%a in (!tstr!) do (
  14.     set /a "n+=1"
  15.     set "dat=%%a"
  16.     set "dat=!dat:~0,10!"
  17.     call echo %%url!n!%%  !dat!
  18.   )
  19. )
  20. pause
复制代码
for %%a in (!tstr!) do () 中 !str! 的长度貌似有限制,导致后面的部分信息无法提取,好在我需要的是前面的。

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 学得很快

查看全部评分

发表于 2012-2-25 14:47:28 | 显示全部楼层
回复 8# QIAOXINGXING


一行命令的长度是有限制的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 00:47 , Processed in 0.024069 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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