如题,用示例中的下载文本到变量代码:
whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", "http://ahkscript.org/download/1.1/version.txt")
whr.Send()
version := whr.ResponseText
MsgBox % version
这个version在msgbox里面看到是有内容的,但是如果此时对这个version变量进行字符串查找等类似操作,就会找不到相关内容。但是如果我是直接用UrlDownloadToFile下载到文件,然后fileread读取这个文件到变量后又能正常操作,这是怎么回事?
求助,将网页下载到变量后无法进行字符串相关操作?
Moderators: tmplinshi, arcticir
Re: 求助,将网页下载到变量后无法进行字符串相关操作?
#NoEnv
#Warn
SendMode Input
SetWorkingDir %A_ScriptDir%
;UrlDownloadToFile, http://imgtrex.com/ujfrrsm8h1ob/AnjericaC14_044.jpg, AnjericaC14_044.txt
;FileRead, html, AnjericaC14_044.txt
;如果直接用上面的代码下载文件再读取,下面操作能正常执行。如果用下面的代码获取网页,后面的字符串处理就出错。
whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", "http://imgtrex.com/ujfrrsm8h1ob/AnjericaC14_044.jpg")
whr.Send()
html := whr.ResponseText
MsgBox % html ;此html能看到内容
Position1 := InStr(html, "href=""http://trex.imgtrex.com/img/")
MsgBox % Position1 ;此Position1得到0,已经出错了。
Position2 := InStr(html, "download=")
StringMid, URL, html, Position1 + 6, Position2 - Position1 - 8
UrlDownloadToFile, %URL%, AnjericaC14_044.jpg
If ErrorLevel
MsgBox, 下载失败。
备注:以上网址中国需要挂代理访问,国外貌似无限制。
#Warn
SendMode Input
SetWorkingDir %A_ScriptDir%
;UrlDownloadToFile, http://imgtrex.com/ujfrrsm8h1ob/AnjericaC14_044.jpg, AnjericaC14_044.txt
;FileRead, html, AnjericaC14_044.txt
;如果直接用上面的代码下载文件再读取,下面操作能正常执行。如果用下面的代码获取网页,后面的字符串处理就出错。
whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", "http://imgtrex.com/ujfrrsm8h1ob/AnjericaC14_044.jpg")
whr.Send()
html := whr.ResponseText
MsgBox % html ;此html能看到内容
Position1 := InStr(html, "href=""http://trex.imgtrex.com/img/")
MsgBox % Position1 ;此Position1得到0,已经出错了。
Position2 := InStr(html, "download=")
StringMid, URL, html, Position1 + 6, Position2 - Position1 - 8
UrlDownloadToFile, %URL%, AnjericaC14_044.jpg
If ErrorLevel
MsgBox, 下载失败。
备注:以上网址中国需要挂代理访问,国外貌似无限制。
Re: 求助,将网页下载到变量后无法进行字符串相关操作?
明白怎么回事了。WinHttp.WinHttpRequest.5.1的代理独立于IE之外,而UrlDownloadToFile则使用IE代理,所以代码出错。
Who is online
Users browsing this forum: No registered users and 19 guests