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

[网络连接] [已解决]批处理怎样获取多个网址或IP所对应的网页标题并输出结果?

[复制链接]
 楼主| 发表于 2011-4-28 13:27:58 | 显示全部楼层
原文本内容例如:
http://bbs.bathome.net
http://bbs.chinaunix.net
http://www.onlinedown.net/
http://www.9ku.com/
不能完全获取,
获取结果:
http://bbs.bathome.net
<title> 批处理之家 ─ 做最实用的批处理论坛 - Powered by Discuz!</title>
http://bbs.chinaunix.net
<title>论坛首页 - 中国最大的Linux/Unix技术社区 - IT人的网上社区 - bbs.ChinaUnix.net</title>
http://www.onlinedown.net/
http://www.9ku.com/
<title>九酷音乐网|好听的歌|网络歌曲|QQ音乐|流行歌曲大全</title>

能不能将<title></title>去除,将标题直接附加到相对应的每行后面并用空格分开,例如

http://bbs.bathome.net 批处理之家 ─ 做最实用的批处理论坛 - Powered by Discuz!
http://bbs.chinaunix.net 论坛首页 - 中国最大的Linux/Unix技术社区 - IT人的网上社区 - bbs.ChinaUnix.net
http://www.onlinedown.net/
http://www.9ku.com/ 九酷音乐网|好听的歌|网络歌曲|QQ音乐|流行歌曲大全
发表于 2011-4-28 14:27:15 | 显示全部楼层
16# wh1234567


12楼的代码你真的试过?
 楼主| 发表于 2011-4-28 15:13:33 | 显示全部楼层
本帖最后由 wh1234567 于 2011-4-28 15:27 编辑

试过,有个别地址不能获取标题例如:http://www.onlinedown.net

不含有http://的网址域名或IP地址例如 [url]www.9ku.com 能不能?尽量弄成通用的那种,例如带http://和不带http://的网址以及IP地址以及后面带不带/都可以处理获取的那种
原文本内容例如:
http://bbs.bathome.net/
http://www.onlinedown.net
www.9ku.com/
bbs.chinaunix.net
http://22.34.33.22/
3.2.2.54/
253.67.1.153
 楼主| 发表于 2011-4-28 16:50:27 | 显示全部楼层
本帖最后由 wh1234567 于 2011-4-28 16:52 编辑

17# Batcher

试过,有个别地址不能获取标题例如:http://www.onlinedown.net

不含有http://的网址域名或IP地址例如 www.9ku.com 能不能?尽量 ... 内容例如:

http://www.onlinedown.net
www.9ku.com/
bbs.chinaunix.net
http://22.34.33.22/
3.2.2.54/
253.67.1.153
 楼主| 发表于 2011-4-29 01:04:29 | 显示全部楼层
试过,有个别地址不能获取标题例如:http://www.onlinedown.net

不含有http://的网址域名或IP地址例如 www.9ku.com 能不能?尽量弄成通用的那种,例如带http://和不带http://的网址以及IP地址以及后面带不带/都可 ...
wh1234567 发表于 2011-4-28 15:13

另外能不能实现多线程获取地址对应的网页标题?这样速度可能要快很多而且比较准确获取到,发现有个别网址不能获取到网页标题,其实这个网页是有标题的,不知道为什么?是不是这样用批处理获取不太稳定?还是代码需要修改一下?请求版主与管理帮我看看
发表于 2011-4-29 12:42:26 | 显示全部楼层
20# wh1234567
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. more +12 "%~f0" >GetUrlText.vbs
  4. (for /f %%a in (a.txt) do (
  5.     set strURL=%%a
  6.     set strURL=!strURL:http://=!
  7.     for /f "tokens=4 delims=<>" %%b in ('cscript //nologo GetUrlText.vbs http://!strURL! ^| findstr /i "<title>.*</title>"') do (
  8.         echo,%%a %%b
  9.     )
  10. ))>b.txt
  11. goto :eof

  12. Set objDOM = WScript.GetObject(WScript.Arguments(0))
  13. Do Until objDOM.ReadyState = "complete"
  14.     WScript.Sleep 200
  15.     Loop
  16. WScript.Echo objDOM.DocumentElement.OuterHTML
复制代码
 楼主| 发表于 2011-4-29 14:52:43 | 显示全部楼层
本帖最后由 wh1234567 于 2011-4-29 18:46 编辑

21# Batcher

不错,就是有点慢,不知道能不能多线程快点,另外能不能就像下面这样的格式的文本内容,只识别前面的网址并获取网页标题,最后将标题附加到对应的行后面,不能获取标题的自动跳过并保留原网址行
原文本内容例如:
http://bbs.bathome.net/,最好的论坛、批处理学习之地。
http://www.onlinedown.net,最安全的下载网,2011,
www.9ku.com/ 歌曲,gequ,
34dvv.chinaunix.net\yeshi,lt
bg.cdsc.rtett.fgg.com,例如,多级域名
http://22.34.33.22/,转换,ip地址
3.2.2.54/,无效,可能
253.67.1.153,dabukai,bukan30
处理后输出文本为:(也就是只识别前面的网址,并将获取的网页标题附加到每行地址对应的最后面,如果网址无效则跳过并保留原行)
http://bbs.bathome.net/,最好的论坛、批处理学习之地。 批处理之家 ─ 做最实用的批处理论坛 - Powered by Discuz!
http://www.onlinedown.net,最安全的下载网,2011, 华军软件园-提供国内外最新免费软件、共享软件下载及发布的软件下载站,软件资讯、技巧、评测、教程等相关软件资讯!
www.9ku.com/ 歌曲,gequ, 九酷音乐网|好听的歌|网络歌曲|QQ音乐|流行歌曲大全
34dvv.chinaunix.net\yeshi,lt 论坛首页 - 中国最大的Linux/Unix技术社区 - IT人的网上社区 - bbs.ChinaUnix.net
bg.cdsc.rtett.fgg.com,例如,多级域名 例如演示
http://22.34.33.22/,转换,ip地址
3.2.2.54/,无效,可能
163.22.58.2,dabukai,bukan30 南投县平和国小
发表于 2011-4-29 15:40:49 | 显示全部楼层
22# wh1234567
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. more +21 "%~f0" >GetURLText.vbs
  4. (for /f %%a in (a.txt) do (
  5.     echo "%%a" | findstr "www" > null || echo "%%a" | findstr "bbs" > null
  6.     if !errorlevel! neq 0 (
  7.         echo %%a
  8.     ) else (
  9.         set strLine=%%a
  10.         set strLine=!strLine:http://=!
  11.         for /f "tokens=1 delims=,\/ " %%b in ("!strLine!") do (
  12.             set strURL=%%b
  13.         )
  14.         for /f "tokens=4 delims=<>" %%c in ('cscript //nologo GetURLText.vbs http://!strURL! ^| findstr /i "<title>.*</title>"') do (
  15.             echo,%%a %%c
  16.         )
  17.     )
  18.     pause
  19. ))>b.txt
  20. goto :eof

  21. Set objDOM = WScript.GetObject(WScript.Arguments(0))
  22. Do Until objDOM.ReadyState = "complete"
  23.     WScript.Sleep 200
  24.     Loop
  25. WScript.Echo objDOM.DocumentElement.OuterHTML
复制代码
 楼主| 发表于 2011-4-29 16:33:39 | 显示全部楼层
本帖最后由 wh1234567 于 2011-4-29 16:34 编辑

23# Batcher


好像效果不太理想,是不是需要修正一下,网址也许有三级或四级的域名的话那就没法获取标题了吧,另外能不能解决速度慢的问题,如果开多线程的话也许速度更快
发表于 2011-4-29 17:13:51 | 显示全部楼层
24# wh1234567


“好像”是多像?
哪个网址获取失败了?
 楼主| 发表于 2011-4-29 18:43:29 | 显示全部楼层
本帖最后由 wh1234567 于 2011-4-29 20:49 编辑

25# Batcher
只获取到第一个,然后就没有反应了,一直不变
结果文本:
http://bbs.bathome.net/,最好的论坛、批处理学习之地。 批处理之家 ─ 做最实用的批处理论坛 - Powered by Discuz
请按任意键继续. . .
pause

))>b.txt

goto :eof
pause是不是应该放在goto :eof的后面呢

另外遇到好几级域名的网址就无法获取标题了,例如:f2bzx1.j2d.ed33u.sh.cn
发表于 2011-4-29 20:47:11 | 显示全部楼层
26# wh1234567


你的测试数据贴出来看看
 楼主| 发表于 2011-4-29 20:51:08 | 显示全部楼层
可能需要重新修改一下代码了,否则多级域名的网址就无法获取到标题了
发表于 2011-4-29 20:55:11 | 显示全部楼层
28# wh1234567


没有测试数据怎么改代码?
 楼主| 发表于 2011-4-29 21:09:16 | 显示全部楼层
本帖最后由 wh1234567 于 2011-4-30 11:21 编辑

29# Batcher

http://bbs.bathome.net/,最好的论坛、批处理学习之地。
http://www.onlinedown.net,最安全的下载网,2011,
www.9ku.com/ 歌曲,gequ,
112.34dvv.chinaunix.net\yeshi,lt
bg.cdsc.rtett.fgg.cn,例如,多级域名
d.44.5.hu.com,新的,227888
http://22.34.33.22/,转换,ip地址
3.2.2.54/,无效,可能
253.67.1.153,dabukai,bukan30
w22.sdsdg.sdkn.gov.cn,juli,shuoming
www.nnhft.dgfg5.ssd432.gov.cn,lizi,zhhzgzhffr45
文本里的网址比较多,且域名后缀与前缀多种格式的,例如com,cn,net,gh,等等任意格式的,前面也不一定带有www,有可能是其他的字母或数字的。域名等级也不一定就是一级或二级有可能是四级五级或更多。
我发现不带有www的多级域名地址无法获取到网页标题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 01:31 , Processed in 0.018381 second(s), 6 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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