Board logo

标题: [其他] [已解决]求助:批处理读取网页内容,不另存文本 [打印本页]

作者: x405526391    时间: 2015-9-14 11:15     标题: [已解决]求助:批处理读取网页内容,不另存文本

本帖最后由 x405526391 于 2015-9-14 15:49 编辑

我是一个新手,刚接触批处理,今天想尝试下直接读取某个或多个有规律的网址里的内容,并直接显示在批处理运行的页面,运行完毕后不关闭批处理面板。

网址类型可能如下:
http://www.xx.com/1.html
http://www.xx.com/2.html
http://www.xx.com/3.html

网页里如果有图片则不显示,请各位大侠帮帮忙。

在论坛里翻看的时候都是看到读取网页里固定的内容存在一个文件里,内容太多,实在理解不了,干脆把各步骤功能分解下学习,多谢各位了~~
作者: pcl_test    时间: 2015-9-14 11:29

第三方 curl
  1. curl http://www.bathome.net/
复制代码

作者: x405526391    时间: 2015-9-14 11:38

第三方 curl
pcl_test 发表于 2015-9-14 11:29



    能否不使用第三方?仅批处理
作者: pcl_test    时间: 2015-9-14 12:37

本帖最后由 pcl_test 于 2015-9-14 12:41 编辑
  1. //&cls&echo off&mshta "%~f0"|find /v ""&pause & exit /b
  2. <script src=http://www.bathome.net/lib/diy/iconv.js></script>
  3. <script>
  4. var url = "http://www.bathome.net";
  5. var fso = new ActiveXObject('Scripting.Filesystemobject');
  6. var http = new ActiveXObject('Msxml2.XMLHTTP');
  7. http.open('GET', url, false);
  8. http.send();
  9. var HtmlText = iconv.toStr(http.ResponseBody,'gb2312');
  10. fso.GetStandardStream(1).Write(HtmlText);
  11. close();
  12. </script>
复制代码

作者: x405526391    时间: 2015-9-14 13:40

pcl_test 发表于 2015-9-14 12:37



    额。。。这个  是批处理么。。。。
作者: pcl_test    时间: 2015-9-14 13:42

回复 5# x405526391

bat+js,纯批不能直接读取网页
作者: x405526391    时间: 2015-9-14 13:47

回复  x405526391

bat+js,纯批不能直接读取网页
pcl_test 发表于 2015-9-14 13:42
  1. @echo off
  2. set n=0
  3. :abc
  4. set /a n+=1
  5. set link=http://www.xx.cn/third/count?from=%n%
  6. Start iexplore "%link%"
  7. ::ping -n 0 127.1>nul 2>nul
  8. taskkill /f /im IEXPLORE.exe 1>nul 2>nul
  9. set count=
  10. set type=%n%
  11. echo 注册人数:%count%    渠道号:%type%
  12. echo %DATE% %time%
  13. if %n%==10 pause
  14. if %n%==11 exit
  15. goto abc
  16. cmd
复制代码
我写成这样了以后。。该怎么应用呢?
作者: pcl_test    时间: 2015-9-14 13:53

回复 7# x405526391

不知道你要干嘛,也不是实际可测试的网址
作者: x405526391    时间: 2015-9-14 13:56

回复 8# pcl_test


    就是 这个网址打开以后是个纯数字,但是有若干个网址 每个网址对应一个渠道号(%n%) 我希望能把数字对应渠道号直接显示在bat里。
作者: pcl_test    时间: 2015-9-14 14:15

回复 9# x405526391

打开网址显示的内容是什么?图呢?网址与渠道号的对应关系又是什么?也不发实际的测试网址,表示无能为力
作者: x405526391    时间: 2015-9-14 14:18

回复 10# pcl_test


    额,我经验不丰富,现在补上。

网址最后的数字就是渠道号,打开网址只有一个数字,数字就是注册量。
作者: pcl_test    时间: 2015-9-14 14:29

回复 11# x405526391
用4楼的代码能获取到注册量吗?
作者: x405526391    时间: 2015-9-14 14:34

回复 12# pcl_test


    可以,但不知道怎么让它批量显示出来。。
作者: pcl_test    时间: 2015-9-14 14:50

回复 13# x405526391
  1. <!-- :
  2. @echo off
  3. :0
  4. set /a n+=1
  5. for /f "delims=" %%a in ('echo %n% ^| mshta "%~f0" 2^>nul') do set "注册人数=%%a"
  6. echo 注册人数:%注册人数%    渠道号:%n%
  7. echo %date% %time%
  8. ping -n 2 0 >nul
  9. if %n%==11 pause&exit /b
  10. goto :0
  11. -->
  12. <script src=http://www.bathome.net/lib/diy/iconv.js></script>
  13. <script>
  14. var fso = new ActiveXObject('Scripting.Filesystemobject');
  15. var http = new ActiveXObject('Msxml2.XMLHTTP');
  16. var n = fso.GetStandardStream(0).ReadLine();
  17. var url = 'http://www.xx.cn/third/count?from='+n;
  18. http.open('GET', url, false);
  19. http.send();
  20. var HtmlText = iconv.toStr(http.ResponseBody,'gb2312');
  21. fso.GetStandardStream(1).Write(HtmlText);
  22. close();
  23. </script>
复制代码

作者: x405526391    时间: 2015-9-14 15:17

回复  x405526391
pcl_test 发表于 2015-9-14 14:50



    哈哈哈哈哈哈哈 好用~~  多谢多谢,我再仔细学习下这段。
另外再多加一句,如果判断注册量为0就不显示,怎么操作?
作者: pcl_test    时间: 2015-9-14 15:23

回复 15# x405526391
  1. if "%注册人数%" neq "0" echo 注册人数:%注册人数%    渠道号:%n%
复制代码

作者: x405526391    时间: 2015-9-14 15:24

回复 14# pcl_test


    如果强制关闭会报错:正在进行关闭通道。
    该怎么解决掉这个?
作者: pcl_test    时间: 2015-9-14 15:28

回复 17# x405526391
  1. try{fso.GetStandardStream(1).Write(HtmlText);}catch(e){ }
复制代码

作者: x405526391    时间: 2015-9-14 15:30

本帖最后由 x405526391 于 2015-9-14 15:33 编辑
回复  x405526391
pcl_test 发表于 2015-9-14 15:23



    额 16#的代码放上了没效果诶。。
作者: pcl_test    时间: 2015-9-14 15:33

回复 19# x405526391
改成这样,把运行结果截图发出来
  1. if "%注册人数%" neq "0" echo 注册人数:"%注册人数%"    渠道号:"%n%"
复制代码

作者: x405526391    时间: 2015-9-14 15:37

回复 20# pcl_test

能不能再加句 把最终正确显示结果导入到记事本
作者: pcl_test    时间: 2015-9-14 15:42

回复 21# x405526391

那不就可以了吗,不可以的话,怎么没有显示带引号的0,你说的不可以,是因为你没改echo 注册人数:%注册人数%    渠道号:%n%
把echo 注册人数:%注册人数%    渠道号:%n%整句替换成16楼的
作者: pcl_test    时间: 2015-9-14 15:43

新人须知,本版规则
1、求助时,务必在顶楼一次性把问题交代清楚,建议给出完整有针对性的样本,样本过大可发网盘分享链接。勿发无意义的标题
2、使用 code 标记把代码部分括起来(单击回复框的 <> 按钮,复制粘贴代码进去),以便复制。问题解决后,请编辑顶楼帖子在标题前面注明[已解决]http://www.bathome.net/thread-3473-1-1.html
3、提问前先使用论坛搜索,相同或类似的问题就无需再发帖了
作者: x405526391    时间: 2015-9-14 15:45

回复 23# pcl_test


    哦哦 知道了  谢谢谢谢 我待会儿就编辑 嘿嘿
作者: x405526391    时间: 2015-9-14 15:50

回复 22# pcl_test


    非常感谢版主大大的耐心讲解~ 不但解决了问题,还普及了下版规 ,此问题已解决,希望也能帮助到有同样需求的朋友,多谢~该问题关闭咯




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