求助,将网页下载到变量后无法进行字符串相关操作?

遇到了问题?请先进行搜索(中文和英文),然后在此提问

Moderators: arcticir, tmplinshi

Bral
Posts: 16
Joined: 04 Apr 2015, 21:24

求助,将网页下载到变量后无法进行字符串相关操作?

04 Apr 2015, 22:11

如题,用示例中的下载文本到变量代码:
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读取这个文件到变量后又能正常操作,这是怎么回事?
Bral
Posts: 16
Joined: 04 Apr 2015, 21:24

Re: 求助,将网页下载到变量后无法进行字符串相关操作?

04 Apr 2015, 22:14

#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, 下载失败。

备注:以上网址中国需要挂代理访问,国外貌似无限制。
Bral
Posts: 16
Joined: 04 Apr 2015, 21:24

Re: 求助,将网页下载到变量后无法进行字符串相关操作?

05 Apr 2015, 09:30

明白怎么回事了。WinHttp.WinHttpRequest.5.1的代理独立于IE之外,而UrlDownloadToFile则使用IE代理,所以代码出错。

Return to “请求帮助”

Who is online

Users browsing this forum: No registered users and 15 guests