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

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

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

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

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


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

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


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

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

 

Ветеран


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

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


Паразит, не интересовался. Видимо получать номер версии IE, сравнивать и добавлять по нужде сайт в списки: Programmatically add a site to Compatibility View list.
Это сообщение посчитали полезным следующие участники:

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



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

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


Аватара для Mike909

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


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

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


Цитата Iska:
?! Какой смысл делать переход на ссылку два раза: »
Это остатки другого скрипта, здесь я просто не доглядел, когда урезал. Так то конечно не нужно.

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


Ветеран


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

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


Mike909, ясно.

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


Аватара для Creat0R

Must AutoIt


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

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


Паразит,
Код: Выделить весь код
$sURL = 'http://forum.oszone.net/post-2726095.html'
$sTitle = StringRegExpReplace(BinaryToString(InetRead($sURL)), '(?si).*?<title>|</title>.*', '')
;$sTitle = StringRegExp(BinaryToString(InetRead($sURL)), '<title>(.*?)</title>', 3)[0]
MsgBox(0, @ScriptName, $sTitle)

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 00:42, 05-04-2017 | #14


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

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


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

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


Creat0R, это то, что мне нужно. Просто и со вкусом. Но.

1. Не работает с защищённым соединением (HTTPS).
2. Если страница UTF-8, то выводятся кракозябры.

Я думаю, что второе это ерунда (легко поправимо), а вот с первым - я думаю, что не ерунда.

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


Ветеран


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

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


Цитата Паразит:
1. Не работает с защищённым соединением (HTTPS). »
Пример, где не работает. На https://ya.ru/ — у меня сработало.

Цитата Паразит:
Я думаю, что второе это ерунда (легко поправимо) »
Это не совсем так. Хорошо, если Вы заранее знаете, в каком виде и в какой кодировке отдаётся содержимое. Но в общем случае, при произвольном взятом url, начинается жёппа.

Отправлено: 09:17, 05-04-2017 | #16


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

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


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

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


Iska, точно. Не работает, если не указан протокол.

Так работает:

Код: Выделить весь код
http://wincmd.ru/
А так нет:

Код: Выделить весь код
www.wincmd.ru
wincmd.ru

Отправлено: 09:50, 05-04-2017 | #17


Ветеран


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

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


Паразит, протокол желательно указывать. Ведь схема является составной и обязательной частью URI.

Отправлено: 09:57, 05-04-2017 | #18


Аватара для Creat0R

Must AutoIt


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

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


Код: Выделить весь код
$sURL = 'http://wincmd.ru'

$sHtml = BinaryToString(InetRead($sURL))
$aTitle = StringRegExp($sHtml, '<title>(.*?)</title>', 3)

If Not @error Then
    $sTitle = (_Encoding_IsUTF8Format($aTitle[0]) ? BinaryToString(StringToBinary($aTitle[0]), 4) : $aTitle[0])
    MsgBox(0, @ScriptName, $sTitle)
EndIf

Func _Encoding_IsUTF8Format($sText, $iCheckASCIICode = False)
    Local $iAsc, $iExt, $iLen = StringLen($sText), $bLess128 = True

    For $i = 1 To $iLen
        $iAsc = Asc(StringMid($sText, $i, 1))

        If $iCheckASCIICode And $iAsc > 128 Then $bLess128 = False

        If Not BitAND($iAsc, 0x80) Then
            ContinueLoop
        ElseIf Not BitXOR(BitAND($iAsc, 0xE0), 0xC0) Then
            $iExt = 1
        ElseIf Not (BitXOR(BitAND($iAsc, 0xF0), 0xE0)) Then
            $iExt = 2
        ElseIf Not BitXOR(BitAND($iAsc, 0xF8), 0xF0) Then
            $iExt = 3
        Else
            Return False
        EndIf

        If $i + $iExt > $iLen Then Return False

        For $j = $i + 1 To $i + $iExt
            $iAsc = Asc(StringMid($sText, $j, 1))
            If BitXOR(BitAND($iAsc, 0xC0), 0x80) Then Return False
        Next

        $i += $iExt
    Next

    If $iCheckASCIICode Then Return($bLess128 = False)

    Return True
EndFunc

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 12:56, 05-04-2017 | #19


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

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


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

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


Creat0R, великолепно, спасибо. Работает так, как надо.

Отправлено: 13:11, 05-04-2017 | #20



Компьютерный форум 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




 
Переход