Board logo

标题: [其他] [已解决]批处理如何检测网站的指定网页是否存在? [打印本页]

作者: ik22    时间: 2011-3-5 12:29     标题: [已解决]批处理如何检测网站的指定网页是否存在?

本帖最后由 pcl_test 于 2016-9-8 19:46 编辑

哥们好,最近本人在管理公司网站的时候偶尔发现有些网页不存在,但是 我想知道到底有哪些网页是不存在,哪些是存在的。所以我想来请教下各位。首先我说下网址的规则先吧。

网站的网址是这样的形式的
  www.a.com/2011/(数字).html        (数字)就是从1开始   大概50000 为结束     注:这个数字不是固定的,有些可能几万。有些可能是几千。

现在我想通过批处理自动从www.a.com/2011/1.html    到 www.a.com/2011/50000.html  一个一个地检查 , 如果检查到某个网页标题出现:
<title>网页不存在!</title>    时,则把这个完整的网址输出到一个文本no.txt   (这代表这个网页不存在了。)
   如果网页标题<title></title> 出现其他的文字,则把这个完整的网址输出到一个文本yes.txt(这代表这个网页是存在的。)



小弟先在此先谢了。
作者: namejm    时间: 2011-3-5 23:21

  这些网页文件都是存放在你们公司本地的机器上,还是在托管主机上?也就是说,是需要通过访问网页文件来获得网页还是可以直接搜索机器上的文件?另外,你还得把原始的网页文件上传一两个到论坛,别人需要分析网页源码才能找到合适的办法。
作者: Batcher    时间: 2011-3-5 23:47

  1. @echo off
  2. more +10 "%~f0" >GetUrlText.vbs
  3. type nul >no.txt
  4. type nul >yes.txt
  5. for /l %%a in (1,1,50000) do (
  6.     echo 正在检测:www.a.com/2011/%%a.html
  7.     cscript //nologo GetUrlText.vbs http://www.a.com/2011/%%a.html | findstr "<title>网页不存在!</title>" && echo www.a.com/2011/%%a.html >>no.txt || echo www.a.com/2011/%%a.html >>yes.txt
  8. )
  9. goto :eof
  10. strURL=WScript.Arguments(0)
  11. WScript.Echo strURL
  12. Set objXmlHttp = CreateObject("Microsoft.XMLHTTP")
  13. objXmlHttp.Open "GET",strURL,0
  14. objXmlHttp.Send()
  15. Set objStream = CreateObject("ADODB.Stream")
  16. objStream.Mode = 3
  17. objStream.Type = 1
  18. objStream.Open()
  19. objStream.Write(objXmlHttp.responsebody)
  20. objStream.Position = 0
  21. objStream.Type = 2
  22. objStream.Charset = "utf-8"
  23. strText = objStream.Readtext
  24. WScript.Echo strText
复制代码





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