按键精灵开发教程:解决获取不到网页源文件
使用命令库里的获取网页源文件,提示没有权限访问?返回值是空的?又或者,网页的内容变化了,但是获取到的网页源文件一直都是第一次启动时获取到的?这么多症状,还有得救吗?小编今天分享药方三帖。这三种方法,小编用着还挺顺手的,希望可以帮到大伙儿~
操作方法
- 01
药方一 此方法采用了Microsoft.XMLHttp组件( XMLHTTP是传送XML格式数据的超文本传输协议 )使用步骤一点也不麻烦: 1、创建XMLHTTP对象。2、输入要网址,并且指定你要对网页进行的操作:GET/Post (get是从服务器上获取数据,post是向服务器传送数据。)3、等待返回值。
- 02
代码: 网页源文件=取网页源码("http://bbs.anjian.com/forum.php") TracePrint 网页源文件 Function 取网页源码(URL) Set objXML=CreateObject("Microsoft.XMLHTTP") objXML.Open "Get", Url, False objXML.send If objXML.readyState=4 then 取网页源码 =objXML.ResponseText End If objXML.Abort Set objXML = Nothing End Function
- 03
代码解析: objXML.Open "Get", Url, False XMLHTTP对象的Open方法,它的参数是这样的 bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword 一共五个参数: bstrMethod: 数据传送方式,即GET或POST。我们要获取数据,所以使用GET方式。 bstrUrl: 服务网页的URL。 varAsync: 是否同步执行。缺省为True,即异步执行。False,即同步执行。我们选择False,同步执行,意思就是:发送完要获取网页源文件的指令之后,等待返回值,等值返回了才执行下一句代码。 bstrUser: 用户名,可省略。 bstrPassword:用户口令,可省略。 If objXML.readyState=4 then XMLHTTP对象的readystate属性,它的值是0-4: 0 :Response对象已经创建,但XML文档上载过程尚未结束 1 :XML文档已经装载完毕 2 :XML文档已经装载完毕,正在处理中 3 :部分XML文档已经解析 4 :文档已经解析完毕,客户端可以接受返回消息
- 04
药方二 使用按键自带的web网页插件的save命令保存网页源文件。 代码: call Plugin.Web.Bind("wqm.exe")//绑定wqm Call Plugin.Web.Save("http://bbs.anjian.com/forum.php", "C:\1.txt") //保存网页源文件到c盘下的1.txt文本中 RunApp "C:\1.txt" 注意:此方法有个缺点,那就是,运行过程中会弹出wqm窗口。
- 05
药方三 懒人插件、365插件都有读取网页源文件的命令,小编这里用365插件的GetWebText 命令做个例子。 使用方法:1、下载365插件2、解压之后将:Mini365.dll 这个文件放到按键精灵安卓目录下的plugin文件夹中 Plugin.Mini365.GetWebText URL,Mode GetWebText命令有两个参数:网址(URL)和 网页编码(Mode) 网页编码常见的是:GB2312和UTF-8 如何得知网页的编码是哪种呢? 我们打开网页,按下F12调出网页代码分析器,绿色圈圈里的那个GBK就是当前网页的编码:
- 06
代码: 网页源文件= Plugin.Mini365.GetWebText ("http://bbs.anjian.com/forum.php", "GBk") TracePrint 网页源文件