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

[问题求助] [已解决]vbs如何获取网页元素内容

本帖最后由 WindCat 于 2017-5-24 21:17 编辑

原标题:请问该如何用vbs获取或抓取一个会跳转且内容为css或可能是js加解密的网页内容信息?
https://privnote.com/
随手找网站练习抓取内容就遇到了个这么个难题
可以点击显示选项---勾选不要在显示和销毁笔记时确认 (经典 Privnote 行为)。
来使得直接显示内容页面(只是少了个确认按钮)
-----------------------------
在最初发这个帖子之前,我只是一个会拿着
http://www.bathome.net/thread-44171-1-1.html中的Set html = CreateObject("microsoft.xmlhttp")套用采集网页信息的菜鸡
然后就正常的遇到了会跳转和需要cookie的页面了
于是就百度找了一堆方案都是用CreateObject("InternetExplorer.Application") 的
然而,win10下用这个会报错,百度没找到,G+都是英文,我英语太烂没找到解决办法。
于是我就找了下面一些文章看...没什么收获.
最后意外发现用管理员权限启用vbs就能正常工作了
于是就开始学如何定位元素
然后依照
http://www.bathome.net/viewthread.php?tid=36406&from=favorites
的方法解决了问题(完工代码见9#http://www.bathome.net/redirect. ... id=44245&pid=199734
最后感谢
523066680的努力(虽然只是一时兴起,不过还是对我起到了提醒作用,让我想到去看看IE下是否真的有加载一些东西
-----------------------------
找了几篇资料...从十二点查到下午5点...今天就到这里了.
还请各位朋友看看有什么收获,然后来交流一下.

使用正确版本的XMLHTTP
http://demon.tw/programming/the-right-version-of-xmlhttp.html
VBS发送带Cookie的HTTP请求
http://demon.tw/programming/vbs-http-cookie.html
Msxml2.XMLHTTP Msxml2.ServerXMLHTTP与缓存
http://demon.tw/programming/msxm ... rxmlhttp-cache.html
再谈Msxml2.XMLHTTP、Msxml2.ServerXMLHTTP与缓存
http://demon.tw/programming/msxm ... tp-cache-again.html
VBS伪造HTTP-REFERER
http://demon.tw/programming/vbs-http-referer.html
VBS伪造HTTP-REFERER(二)
http://demon.tw/programming/vbs-http-referer-two.html


vbs 解析html文档的方法(htmlfile)
http://www.codeweblog.com/vbs-%E ... %E6%B3%95-htmlfile/

回复 2# codegay

已利用搜索引擎找到源站并更替链接...
请问下下面这个哪里错了。。。
(如何用)InternetExplorer.Application获取网页源代码
  1. dim ie,url,MyStream
  2. url="http://www.bathome.net"
  3. if url&"a"<>"a" then
  4. Set ie=WScript.CreateObject("InternetExplorer.Application")
  5. ie.visible=true
  6. ie.navigate url
  7. msgbox ""
  8. Do
  9. Wscript.Sleep 2000
  10. Loop Until ie.ReadyState=4
  11. Set MyStream=CreateObject("Adodb.Stream")
  12. MyStream.Type = 1
  13. MyStream.Open
  14. MyStream.Write ie.document.documentElement.outerHTML
  15. MyStream.SaveToFile "C:\xxx.html"
  16. Msgbox "保存成功"
  17. IE.Quit
  18. End if
复制代码
1

评分人数

    • CrLf: 棒棒哒PB + 6 技术 + 1

TOP

@CrLf
那个...我并没有解决自己的问题...执行会遇到如下错误
---------------------------
Windows Script Host
---------------------------
脚本:        G:\Datas\Source_code\vbs登录网页\test-副本.vbs
行:        14
字符:        2
错误:        参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
代码:        800A0BB9
源:         ADODB.Stream

---------------------------
确定   
---------------------------

TOP

本帖最后由 WindCat 于 2017-5-24 20:07 编辑

回复 5# 523066680


    先停一停,文本框里解密内容为test时,定位输入栏元素,内容为U2FsdGVkX18QQ6eYCCJ+4YGn5oA9wrQgebRu+1XnrIM=,改变后会直接如明文覆盖应用到页面
但是,我发现了一个选择文本按钮,能不能用vbs调用WScript.CreateObject("InternetExplorer.Application") 后台打开IE窗体然后点击选择文本按钮然后复制选择内容?
或者说给按钮元素增加一个复制到剪贴板的动作

TOP

本帖最后由 pcl_test 于 2017-5-25 00:28 编辑

回复 8# 523066680


    辛苦了;w;虽然我绝对不会用这种方式读页面内容
获取加密链接
  1. Set ie = CreateObject("InternetExplorer.Application")
  2. ie.Visible = true
  3. ie.navigate "https://privnote.com/#dont_ask"
  4. On Error Resume Next
  5. Set btn=ie.Document.getElementByID("encrypt_note")
  6. Do while Err
  7.     On Error Resume Next
  8.     Set btn=ie.Document.getElementByID("encrypt_note")
  9.     WSH.Sleep 500
  10. Loop
  11. ie.Document.getElementByID("note_raw").value="需加密的内容"
  12. btn.click()
  13. Do while ie.Document.getElementByID("note_link_input").value = ""
  14.     WSH.Sleep 500
  15. Loop
  16. msgbox ie.Document.getElementByID("note_link_input").value
  17. ie.quit
复制代码
获取解密内容
  1. Set ie = CreateObject("InternetExplorer.Application")
  2. ie.Visible = true
  3. ie.navigate "https://privnote.com/3OZyRIdB#eCqP3Bxu5"
  4. On Error Resume Next
  5. Set textarea=ie.Document.getElementByID("note_contents")
  6. Do while Err
  7.     On Error Resume Next
  8.     Set textarea=ie.Document.getElementByID("note_contents")
  9.     WSH.Sleep 500
  10. Loop
  11. Do while textarea.value = ""
  12.     WSH.Sleep 500
  13. Loop
  14. msgbox textarea.value
  15. ie.quit
复制代码
直接这样就OK了(不知道为什么Chrome浏览器访问时元素内容是加密后的,而IE是直接的解密内容...害我折腾一个下午)
1

评分人数

TOP

返回列表