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

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

Ответить
Настройки темы
[решено] Получить заголовок страницы в Интернете

Аватара для Паразит

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


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

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


Изменения
Автор: Паразит
Дата: 04-04-2017
Привет. Такая задача.
Надо получить заголовок страницы, которая расположена на удалённом сервере.
Т.е., надо получить текст между тэгами <TITLE>.
С помощью каких встроенных функций можно такое сделать?

Отправлено: 12:41, 04-04-2017

 

Аватара для Mike909

Новый участник


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

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


Вот так примерно:

Код: Выделить весь код
#include <IE.au3>

Local $oIE, $oLinks, $tags
Local $link = "http://www.example.com/"
_IEErrorNotify(False)

; Открываем IE
If  IsObj($oIE) Then
   _IEQuit($oIE)
EndIf   
$oIE=_IECreate($link,1,0,1)    

ConsoleWrite ( $link & @LF)
_IENavigate($oIE, $link, 0)       ; тут не ждем пока загрузится
_IELoadWait($oIE, 5000 , 15000)      ;  а тут ждем максимум 15 сек
        
If not @error Then        
                    $tags = $oIE.document.GetElementsByTagName("title")        
                    if  IsObj($tags) Then
                        ConsoleWrite ('tags=' & $tags.Length & @LF)
                        Sleep(200)
                        For $tag in $tags                         
                            $class_value = $tag.className
                            $innerText_value = _IEPropertyGet($tag, 'innertext')
                            ConsoleWrite ('innerText_value=' & $innerText_value &@LF)                       
                        Next
                    Else
                       ConsoleWrite ('tags no obj' & @LF)
                    EndIf
EndIf

If IsObj($oIE) Then
   _IEQuit($oIE)
EndIf
ConsoleWrite ("Exit au3." & @LF)

Последний раз редактировалось Mike909, 04-04-2017 в 15:11.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:12, 04-04-2017 | #2



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

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


Аватара для Паразит

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


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

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


Чё-то он выдаёт ошибку. В файле IE.au3 344-я строка.

Код: Выделить весь код
$sTmp = $oWindow.type ; Is .type a valid property?
$sTmp = $oWindow^Error

Отправлено: 14:26, 04-04-2017 | #3


Аватара для Mike909

Новый участник


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

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


У меня без ошибок. Пробовал разные ссылки и https тоже.
IE 11 на Windows 10 x32, autoit 3.14
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:10, 04-04-2017 | #4


Аватара для Паразит

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


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

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


А у меня Хрюша и IE 6.
Ну ладно, спасибо.

Отправлено: 15:38, 04-04-2017 | #5


Аватара для Mike909

Новый участник


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

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


на хрюше вроде ie 8 или даже 9 есть )))

Отправлено: 15:41, 04-04-2017 | #6


Ветеран


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

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


Mike909, какой смысл в вечно ложном условии:
Код: Выделить весь код
If  IsObj($oIE) Then
   _IEQuit($oIE)
EndIf
?! Какой смысл делать переход на ссылку два раза:
Код: Выделить весь код
$oIE=_IECreate($link,1,0,1)    
…
_IENavigate($oIE, $link, 0)
?


Мой вариант:
Скрытый текст
Код: Выделить весь код
#include <IE.au3>
#include <MsgBoxConstants.au3>

AutoItSetOption("MustDeclareVars", 1)

Local $oIE        = _IECreate("https://www.google.com", 0, 0)
Local $oDocument = _IEDocGetObj($oIE)
MsgBox($IDOK, "https://www.google.com", $oDocument.title)

_IENavigate($oIE, "http://www.yandex.ru/")
$oDocument = _IEDocGetObj($oIE)
MsgBox($IDOK, "http://www.yandex.ru/", $oDocument.title)

_IEQuit($oIE)

Exit(0)
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:49, 04-04-2017 | #7


Аватара для Паразит

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


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

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


Iska, спасибо. Ваш скрипт работает. Интересно, а будет ли он работать на любых операционных системах?
Хотя-бы, чтобы начиная с ХР, кончая 10-ой. И чтобы от разрядности не зависел.

Отправлено: 16:23, 04-04-2017 | #8


Ветеран


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

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


Паразит, проверяйте, мне не на чем. Могу сказать одно: работать будет не везде. Например, данный форум и сайт на IE11 без установки режима совместимости дадут ошибку обработки. Соответственно, и скрипт «обломается».

Отправлено: 16:27, 04-04-2017 | #9


Аватара для Паразит

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


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

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


А как выставить такой режим?

Отправлено: 16:29, 04-04-2017 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Заголовок сообщения: I7adonok Металлолом 3 06-06-2013 05:17
php способы получить данные со страницы в инете enikei Вебмастеру 2 13-10-2010 04:54
[решено] Как получить только исхоный код страницы по HTTP (без картинок и тд - только текст)? evg64 AutoIt 3 10-01-2010 01:17
Интернет - Internet Explorer 6.0 sp2. Как указать печать адреса страницы при печати страницы. GifuN Microsoft Windows 2000/XP 1 11-11-2008 08:29




 
Переход