[решено] InetRead, InetGet - движек IE?

Ответить
Аватара пользователя
AlexM

[решено] InetRead, InetGet - движек IE?

Сообщение AlexM »

Подскажите, пожалуйста, как написать код подобный ниже с ObjCreate("winhttp.winhttprequest.5.1") чтобы прочитать файл, а не HTML код - может моя проблема будет решена.



Спасибо!





Ниже подробности откуда проблема пошла и про тонкости работы AutoIT.





Вопрос частично связан с решением проблемы, описанной мной в

http://forum.oszone.net/showthread.p...56#post1658356




Заметил, что InetRead прочитал исходник страницы не как прочитал FF (и Chrome - специально установил для проверки). Загрузил страницу в IE - о, вот она страница, прочтенная InetRead.

Страница

http://mgts.ru/company/investors/messages/




Вопрос конечно зачем сайт МГТС дает страницу в FF и IE поразному, а вопрос по AutoIT - правильна моя догадка, что InetRead и InetGet используют "модули" IE?

И возможно у меня проблема
http://forum.oszone.net/showthread.p...56#post1658356
, которая у кого-то так же, а у кого нормально читается ---- потому что у меня старый IE v6?



Нашел код для чтения исходника страницы на форуме, он читает страницу как FF, так что проблема чтения HTML кода обойдена:



Код:

Код: Выделить всё

$url="http://some.site"
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("POST",$url)
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)
$oHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1)")
$oHTTP.Send('')
$oHTTP.WaitForResponse
$PageContent=$oHTTP.ResponseText

Кстати по адресу
http://www.autoitscript.com/autoit3/...tro/ComRef.htm
написано, что




Цитата:



Let's do another example. We would like to get a HTML source code from a certain web page. You could use the internal InetGet() function to save the result to a file and retrieve it back again with FileRead(). But these lines of code do the same:



$oHTTP = ObjCreate("winhttp.winhttprequest.5.1")

$oHTTP.Open("GET","
http://www.AutoItScript.com
")

$oHTTP.Send()

$HTMLSource = $oHTTP.Responsetext




Так вот - я проверил для страницы МГТС - это не тоже самое!
Аватара пользователя
AlexM

Re: [решено] InetRead, InetGet - движек IE?

Сообщение AlexM »

Код ниже решил насущную проблему (по крайней мере пока так кажется).

Буду рад увидеть комментарии по поводу тонкостей работы InetGet :-)

После чего (или через пару дней) закрою тему решенной. Спасибо!





Код:

Код: Выделить всё

$HTMLSource = $oHTTP.ResponseBody
Аватара пользователя
Iska

Re: [решено] InetRead, InetGet - движек IE?

Сообщение Iska »

AlexM, а не пробовали банально UserAgent менять — HttpSetUserAgent() (в том коде, что «InetGet() …»)?
Аватара пользователя
AlexM

Re: [решено] InetRead, InetGet - движек IE?

Сообщение AlexM »

Спасибо, не думал об этом. Попробовал добавить в начало программы



Код:

Код: Выделить всё

HttpSetUserAgent("Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1)")

Результат InetRead остался тем же, отличным от кода



Код:

Код: Выделить всё

$url="http://some.site"
$oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1")
$oHTTP.Open("POST",$url)
$oHTTP.setTimeouts(5000, 5000, 15000, 15000)
$oHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1)")
$oHTTP.Send('')
$oHTTP.WaitForResponse
$PageContent=$oHTTP.ResponseText

Какие вообще обычно доступны агенты - не в хелпе, ни в инете списка не нашел?

Заметил еще прикол - длина прочитанного текста $oHTTP.ResponseText при каждом запуске разная (по количеству символов StringLen) .
Аватара пользователя
Iska

Re: [решено] InetRead, InetGet - движек IE?

Сообщение Iska »

Цитата AlexM:



Попробовал добавить в начало программы… Результат InetRead остался тем же, отличным от кода
[решено] InetRead, InetGet - движек IE?




Спасибо, ясно.




Цитата AlexM:



Какие вообще обычно доступны агенты - не в хелпе, ни в инете списка не нашел?
[решено] InetRead, InetGet - движек IE?




Здесь:
User Agent — Википедия
смотрели?
Аватара пользователя
AlexM

Re: [решено] InetRead, InetGet - движек IE?

Сообщение AlexM »

Спасибо, почитал википедию, стало понятней в чем дело.
Ответить

Вернуться в «AutoIt»