1 (изменено: heisenberg, 2014-04-05 18:42:50)

Тема: AHK: Парсинг html

Здравствуйте. Подскажите пожалуйста, возможно ли посредством ahk сделать скрипт, который будет парсить заданные страницы на предмет определённого текста, и в случае положительного  результата выполнять определённое действие на этой странице ?

2

Re: AHK: Парсинг html

heisenberg, исправь название темы, точка в ней не ставится.

Вариантов множество, например  этот (на англоязычном форуме).

3

Re: AHK: Парсинг html

Irbis пишет:

heisenberg, исправь название темы, точка в ней не ставится.

Вариантов множество, например  этот (на англоязычном форуме).

Исправил, спасибо попробую разобраться.

4

Re: AHK: Парсинг html

Irbis Я зашёл на указанный ресурс и не нашёл линка на скачку StrX()

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

5 (изменено: serzh82saratov, 2014-05-04 12:10:23)

Re: AHK: Парсинг html

Зачем вообще такие парсеры, если все методы есть в HTMLFile?


html := URLDownloadToVar("http://forum.script-coding.com/viewtopic.php?pid=82639#p82639")  
(oHTML := ComObjCreate("HTMLFile")).write(html)   

Loop % (all := oHTML.all).length 
    If ((Text := all[A_Index-1].InnerText) != "")
        MsgBox, % "Tag: " all[A_Index-1].TagName "`n`n" Text  
 
URLDownloadToVar(url) {
    (webRequest:=ComObjCreate("WinHttp.WinHttpRequest.5.1")).open("GET", url, False), webRequest.send()
    Return, webRequest.responseText, webRequest:=""
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6

Re: AHK: Парсинг html

А если нужна простая разборка текста? Что писать с "нуля"?

Просто StrX() удобен, т.к. он без привязки.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

7

Re: AHK: Парсинг html

А если нужна простая разборка текста? Что писать с "нуля"?

В смысле?

StrX() удобен, т.к. он без привязки.

Привязки к чему?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

8

Re: AHK: Парсинг html

Просто StrX() удобен

Покажите мне "удобный" пример со StrX(), чтобы получить такие же два результата:

+ открыть спойлер

html =
(
<div class="post even replypost">
            <div class="posthead" id="p82644">
                <h3 class="hn post-ident"><span class="post-num">6</span> <span class="post-byline"><span>Ответ от </span><a title="Перейти в профиль пользователя Indomito" href="http://forum.script-coding.com/profile.php?id=27285">Indomito</a></span> <span class="post-link"><a title="Постоянная ссылка на это сообщение" class="permalink" href="http://forum.script-coding.com/viewtopic.php?pid=82644#p82644" rel="bookmark">Сегодня 13:31:01</a></span></h3>
            </div>
            <div class="postbody online">
                <div class="post-author">
                    <ul class="author-ident">
                        <li class="username"><a title="Перейти в профиль пользователя Indomito" href="http://forum.script-coding.com/profile.php?id=27285">Indomito</a></li>
                        <li class="usertitle"><span>Участник</span></li>
                        <li class="userstatus"><span>На форуме</span></li>
                    </ul>
                    <ul class="author-info">
                        
                    </ul>
                </div>
                <div class="post-entry">
                    <h4 class="entry-title hn" id="pc82644">Re: AHK: Парсинг html</h4>
                    <div class="entry-content">
                        <p>А если нужна простая разборка текста? Что писать с "нуля"?</p><p>Просто <strong>StrX()</strong> удобен, т.к. он без привязки.</p>
                        <div class="sig-content"><span class="sig-line"><!-- --></span><span style="color: rgb(0, 0, 0);">"На каждое действие есть равная ему противодействующая критика." <strong><em>Постулат Харриссона</em></strong></span><br><strong>E-Mail:</strong>&nbsp; <a href="mailto:sandershelp@gmail.com">sandershelp@gmail.com</a> <br><strong>Skype: </strong> indomito_64</div>
                    </div>
                </div>
            </div>
            <div class="postfoot">
                <div class="post-options">
                    <p class="post-actions"><span class="report-post first-item"><a href="http://forum.script-coding.com/misc.php?report=82644">Сообщить модератору<span> Сообщение 6</span></a></span> <span class="quote-post"><a href="http://forum.script-coding.com/post.php?tid=9456&amp;qid=82644">Цитировать<span> Сообщение 6</span></a></span></p>
                </div>
            </div>
        </div>
<div class="entry-content">
                        <div class="quotebox"><blockquote><p>А если нужна простая разборка текста? Что писать с "нуля"?</p></blockquote></div><p>В смысле?<br></p><div class="quotebox"><blockquote><p>StrX() удобен, т.к. он без привязки.</p></blockquote></div><p>Привязки к чему?</p>
                        <div class="sig-content"><span class="sig-line"><!-- --></span>Win7x64, AutoHotkey_L v1.1.15.00 (Unicode 32-bit) <br><strong>E-Mail:</strong> <a href="mailto:serzh82saratov@mail.ru">serzh82saratov@mail.ru</a></div>
                    </div>
)
  
(oHTML := ComObjCreate("HTMLFile")).write(html)   

Loop % (all := oHTML.all).length 
{
    this := all[A_Index-1]
    Text := this.InnerText
    ClassName := this.ClassName
    TagName := this.TagName
    
    If (ClassName = "entry-content")
        MsgBox, % "Tag: " TagName "`n`n" Text  
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

9

Re: AHK: Парсинг html

serzh82saratov может не в тему, но мне нужна хорошая функция для парсинга... например исходника языка AHK(как пример).

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

10

Re: AHK: Парсинг html

Что значит хорошая?

например исходника языка AHK(как пример).

А что там парсить, и где пример.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

11

Re: AHK: Парсинг html

Искать ключевые слова и давать их позицию и размер, а так же считывать их в переменную.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

12

Re: AHK: Парсинг html

Тема про парсинг html, для каждой задачи есть свои средства. Считаете иначе, ответьте на вопрос 8 поста.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

13

Re: AHK: Парсинг html

serzh82saratov пишет:

Тема про парсинг html, для каждой задачи есть свои средства.

сорри... думал, как всегда объять необъятное

serzh82saratov пишет:

Считаете иначе, ответьте на вопрос 8 поста.

нет, в посте №8 всё правильно для HTML.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AutoHotkey v1.1.32.00 - November 24, 2019
Click to Download

14

Re: AHK: Парсинг html

нет, в посте №8 всё правильно для HTML.

Не совсем, для конкретной задачи достаточно:


(oHTML := ComObjCreate("HTMLFile")).write(html)   

Loop % (all := oHTML.all).length  
    If (all[A_Index-1].ClassName = "entry-content")
        MsgBox, % all[A_Index-1].InnerText    
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

15 (изменено: DD, 2018-03-11 23:38:15)

Re: AHK: Парсинг html

Уважаемые, а есть пример парсинга одной и той же страницы, с отсеиванием дубликатов вхождений и накоплением новых данных? К примеру, если это RSS-лента — как вытаскивать из нее уникальные блоки и узнавать, какие из них соответствуют уже полученным, а какие являются обновлением?