Board logo

标题: [网络连接] 批处理怎么检测一个网页能否打开? [打印本页]

作者: zb848    时间: 2017-5-9 13:08     标题: 批处理怎么检测一个网页能否打开?

我想要一个批处理检测网站的一个页面能不能打开,不能打开就给出提示。

举个例子,如 http://www.163.com  当这个网站的首页打不开就提示打不开。

注意:不是检测服务器打开不,有时候服务器是好的,能ping通。但网站故障网页会打不开

类似如下面:
  1. @echo off
  2. ping -n 1 www.163.com 1>nul  2>nul&&echo 服务器连接正常||echo 服务器连接不正常
  3. pause
复制代码
这个是检测服务器连接。我想要检测页面是否正常打开。

具体有思路是找到网页中的某个特定字符串,如“网易”,就证明可以打开。否则就打不开页面。但我不知道怎么实现

请高手指导一下,谢谢。
作者: ShowCode    时间: 2017-5-9 13:44

  1. curl -I "http://www.163.com"
复制代码
判断一下HTTP状态是不是200
作者: zb848    时间: 2017-5-9 14:33

本帖最后由 zb848 于 2017-5-9 16:40 编辑
判断一下HTTP状态是不是200
ShowCode 发表于 2017-5-9 13:44




这个不对啊

在批处理中怎么接收这个返回码?


能不能写个全的批处理,谢谢!
作者: ShowCode    时间: 2017-5-9 16:43

回复 3# zb848
  1. @echo off
  2. for /f %%i in ('curl -so /dev/null -w %%{http_code} http://www.163.com') do (
  3.     set ret=%%i
  4. )
  5. if %ret% equ 200 (
  6.     echo 是200
  7. ) else (
  8.     echo 不是200
  9. )
  10. pause
复制代码

作者: CrLf    时间: 2017-5-9 17:00

回复 2# ShowCode


    有没有口能是 304
作者: zb848    时间: 2017-5-9 17:07

回复  zb848
ShowCode 发表于 2017-5-9 16:43



十分感谢!
作者: ShowCode    时间: 2017-5-9 19:41

回复 5# CrLf


    有的话,应该检测304之后的页面。
作者: zb848    时间: 2017-5-10 08:15

本帖最后由 zb848 于 2017-5-10 08:22 编辑

现在又遇到 个问题

我有一个页面,http://dddl.hngs.tax.cn/js_sso_server/login?service=http%3A%2F%2Fportal.hngs.tax.cn%2Fwelcome.html
(注:这是个内网地址。外网是无法访问的)
这个页面地址含有%字符。

  1. curl -I -m 10 -o /dev/null -s -w %{http_code}  http://dddl.hngs.tax.cn/js_sso_server/login?service=http%3A%2F%2Fportal.hngs.tax.cn%2Fwelcome.html
复制代码
返回的是200

可是用你的代码
  1. @echo off
  2. for /f %%i in ('curl -so /dev/null -w %%{http_code} http://dddl.hngs.tax.cn/js_sso_server/login?service=http%3A%2F%2Fportal.hngs.tax.cn%2Fwelcome.html') do (
  3.     set ret=%%i
  4. )
  5. if %ret% equ 200 (
  6.     echo 是200
  7. ) else (
  8.     echo 不是200
  9.     echo 是%ret%
  10. )
  11. pause
复制代码
返回的总是500000

我试着将地址http://dddl.hngs.tax.cn/js_sso_server/login?service=http%3A%2F%2Fportal.hngs.tax.cn%2Fwelcome.html     中的%改成%%也是500000。将%2F改成/,%3A改成:结果返回302.

请问题出在那?谢谢
作者: ShowCode    时间: 2017-5-10 09:44

回复 8# zb848


你用了SSO单点登录吧,它会发生302重定向,正常的。

能直接访问这个吗:
http://portal.hngs.tax.cn/welcome.html
作者: codegay    时间: 2017-5-10 10:01

curl 应该也可以设置跟随转。
作者: zb848    时间: 2017-5-10 10:18

本帖最后由 zb848 于 2017-5-10 10:21 编辑

回复 9# ShowCode



访问这个地址,http://portal.hngs.tax.cn/welcome.html

也是跳到这个地址http://dddl.hngs.tax.cn/js_sso_server/login?service=http%3A%2F%2Fportal.hngs.tax.cn%2Fwelcome.html

用你的代码curl也是302

可能是语句中的%有问题,怎么解决
作者: zb848    时间: 2017-5-10 10:22

curl 应该也可以设置跟随转。
codegay 发表于 2017-5-10 10:01



怎么设置跟随转?
作者: CrLf    时间: 2017-5-10 10:32

回复 12# zb848


    -L, --location       Follow redirects (H)
然而这个应该不能处理用 js 控制的跳转
作者: ShowCode    时间: 2017-5-10 10:59

回复 8# zb848


你自己的curl命令保存到bat文件里面能得到200吗?分别试试:

test1.bat
  1. curl -I -m 10 -o /dev/null -s -w %{http_code}  http://dddl.hngs.tax.cn/js_sso_server/login?service=http%3A%2F%2Fportal.hngs.tax.cn%2Fwelcome.html
  2. pause
复制代码
test2.bat
  1. curl -I -m 10 -o /dev/null -s -w %%{http_code}  http://dddl.hngs.tax.cn/js_sso_server/login?service=http%%3A%%2F%%2Fportal.hngs.tax.cn%%2Fwelcome.html
  2. pause
复制代码

作者: zb848    时间: 2017-5-10 11:19

回复  zb848


你自己的curl命令保存到bat文件里面能得到200吗?分别试试:

test1.battest2.bat
ShowCode 发表于 2017-5-10 10:59





单独在cmd中运行第一个返回200,第二个返回302

[attach]10613[/attach]


在批处理文件中运行批处理报错
[attach]10614[/attach]


运行下面代码
  1. @echo off
  2. for /f %%i in ('curl -so /dev/null -w %%{http_code} http://dddl.hngs.tax.cn/js_sso_server/login?service=http%3A%2F%2Fportal.hngs.tax.cn%2Fwelcome.html') do (
  3.     set ret=%%i
  4. )
  5. if %ret% equ 200 (
  6.     echo 是200
  7. ) else (
  8.     echo 不是200
  9.     echo 是%ret%
  10. )
  11. echo.
  12. @echo off
  13. for /f %%p in ('curl -so /dev/null -w %%{http_code} http://dddl.hngs.tax.cn/js_sso_server/login?service=http%%3A%%2F%%2Fportal.hngs.tax.cn%%2Fwelcome.html') do (
  14.     set ret2=%%p
  15. )
  16. if %ret2% equ 200 (
  17.     echo 是200
  18. ) else (
  19.     echo 不是200
  20.     echo 是%ret2%
  21. )
  22. pause
复制代码
结果都是50000
[attach]10615[/attach]

作者: zb848    时间: 2017-5-11 16:11

有人知道吗?
  请高手指教
作者: zb848    时间: 2017-5-19 15:42

自己找到原因了

http://dddl.hngs.tax.cn/js_sso_server/login?service=http%%3A%%2F%%2Fportal.hngs.tax.cn%%2Fwelcome.html

改成
{http://dddl.hngs.tax.cn/js_sso_server/login?service=http%%3A%%2F%%2Fportal.hngs.tax.cn%%2Fwelcome.html}




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