Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] InetRead, InetGet - движек IE?

Ответить
Настройки темы
[решено] InetRead, InetGet - движек IE?

Пользователь


Сообщения: 73
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите, пожалуйста, как написать код подобный ниже с 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
Так вот - я проверил для страницы МГТС - это не тоже самое!

Отправлено: 23:00, 15-04-2011

 

Пользователь


Сообщения: 73
Благодарности: 0

Профиль | Отправить PM | Цитировать


Код ниже решил насущную проблему (по крайней мере пока так кажется).
Буду рад увидеть комментарии по поводу тонкостей работы InetGet :-)
После чего (или через пару дней) закрою тему решенной. Спасибо!

Код: Выделить весь код
$HTMLSource = $oHTTP.ResponseBody

Отправлено: 23:22, 15-04-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


AlexM, а не пробовали банально UserAgent менять — HttpSetUserAgent() (в том коде, что «InetGet() …»)?
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:47, 15-04-2011 | #3


Пользователь


Сообщения: 73
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, не думал об этом. Попробовал добавить в начало программы
Код: Выделить весь код
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) .

Отправлено: 08:50, 16-04-2011 | #4


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата AlexM:
Попробовал добавить в начало программы… Результат InetRead остался тем же, отличным от кода »
Спасибо, ясно.


Цитата AlexM:
Какие вообще обычно доступны агенты - не в хелпе, ни в инете списка не нашел? »
Здесь: User Agent — Википедия смотрели?
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:03, 16-04-2011 | #5


Пользователь


Сообщения: 73
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 21:37, 17-04-2011 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] InetRead, InetGet - движек IE?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Ошибка 13 InetGet AlexM AutoIt 9 15-04-2011 23:17
[решено] inetget не скачивает AlterEgoFS AutoIt 8 24-03-2010 13:45
[решено] Закачка куска файла через InetGet FlatX007 AutoIt 18 07-07-2009 00:06
Отображение прогресса закачки файла через InetGet Creat0R AutoIt 0 18-06-2009 18:24
Какой движек выбрать для интранета ? krec Вебмастеру 3 01-04-2008 12:15




 
Переход