Нужно вытащить ссылку с сайта, используя VBscript - PullRequest
0 голосов
/ 28 января 2011

Я дошел до получения HTML-ответа в переменную, и теперь я застрял:

Ссылка: http://www.avg.com/gb-en/31.prd-avb

В идеальном мире я смог бы получитьпервая и вторая ссылки для x86 и x64.Все, что мне нужно получить, это фактическое расположение exe-файла в переменной: IE:

download.avg.com / filedir / inst / avg_ipw_x86_all_2011_1204a3402.exe

Может кто-нибудь указать мне правуюнаправление?

Заранее благодарим за любую помощь

1 Ответ

2 голосов
/ 28 января 2011

Это работает, но это далеко от звездной техники, потому что я парсинг HTML с регулярным выражением .

Однако я не знаюболее простой способ сделать это в Classic ASP, и это простая задача.

<%

url = "http://www.avg.com/gb-en/31.prd-avb"

Dim http
Set http = Server.CreateObject("WinHttp.WinHttpRequest.5.1")
http.SetTimeouts 20000, 20000, 20000, 10000
http.Open "GET", url, False
http.Send
If http.WaitForResponse(5) Then
    responseText = http.ResponseText
End If
Set http = Nothing

'Response.Write(Server.HtmlEncode(responseText))

Set re = New RegExp
re.IgnoreCase = True
re.Global = True
re.Pattern = "<a href=""(http://download\.avg\.com/filedir/inst/.*?)"""
Set matches = re.Execute(responseText)
If matches.Count > 0 Then
    For Each match In matches
        Response.Write(match.SubMatches(0) & "<br />")
    Next
Else
    Response.Write("No matches.")
End If

%>

Дает вывод, подобный этому:

http://download.avg.com/filedir/inst/avg_ipw_x86_all_2011_1204a3402.exe
http://download.avg.com/filedir/inst/avg_ipw_x64_all_2011_1204a3402.exe
http://download.avg.com/filedir/inst/avg_msw_x86_all_2011_1204a3402.exe
http://download.avg.com/filedir/inst/avg_msw_x64_all_2011_1204a3402.exe
http://download.avg.com/filedir/inst/avg_rad_x86_all_2011_1154.exe
http://download.avg.com/filedir/inst/avg_rad_x64_all_2011_1154.exe
...