Что нового

[Автоматизация] Поиск слова на странице и сохранение строчки с этим словом

maxim_porsche

Новичок
Сообщения
25
Репутация
0
Версия AutoIt: 3.3.12.0

Описание: Посмотрел справку по AutoIt,воспользовался поиском на форуме -> подобного ничего не нашёл :( Собственно нужен такой вот скрипт:
1) После открытия страницы в окне IE посмотреть исходный код
2) Найти в коде строчку содержащую некое слово (которое не повторяется в коде)
3) После чего сохранить всю строчку в файл
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
maxim_porsche,
Можно пример сайта и строки, которую надо сохранить.
 
Автор
M

maxim_porsche

Новичок
Сообщения
25
Репутация
0
Да,конечно.
Код:
...
<div class="giveawaydetails" align="center" style="margin:0 auto;"><div align="left">
	<p>Congratulations!</p>
	<p>Your key is: <span style="color:#000000;"><span style="background-color:#ffffff;">GI1UMW6Y7IGPFUY6JO</span></span></p>

</div>
...
Слово,по которому можно искать это :#ffffff или :#000000 т.к. это уникальные слова на странице. Поиск по номеру строки и запись её в файл тут,к сожалению,не подойдёт(
Если интересует страница,то вот она http://www.mmorpg.com/giveaways.cfm?offer=560 (требуется регистрация)
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Код:
#include <Array.au3>
#include <IE.au3>

$oIE = _IEAttach("http://www.mmorpg.com/giveaways.cfm", "url")
$text = _IEBodyReadHTML($oIE)
$pattern = "<p>.*?[\#ffffff|\#000000].*?</p>"
$aRes = StringRegExp($text, $pattern, 3)
_ArrayDisplay($aRes)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Код:
#include <IE.au3>

$oIE = _IEAttach("http://www.mmorpg.com/giveaways.cfm", "url")
$oItems = _IETagNameGetCollection($oIE, 'p')
For $oItem In $oItems
   If StringRegExp(_IEPropertyGet($oItem, 'innerText'), 'Your key is:', 0) Then
	  $oSpan = $oItem.firstChild.firstChild
	  $sKey = _IEPropertyGet($oSpan, 'innerText')
	  ExitLoop
   EndIf
Next

ConsoleWrite(StringFormat('Your key is: %s\r\n', $sKey))
 
Автор
M

maxim_porsche

Новичок
Сообщения
25
Репутация
0
Garrett,
В консоли выдаёт вот такую вот ошибку
Код:
error: _IEPropertyGet() called with Const or expression on ByRef-param(s).
      $sKey = _IEPropertyGet($oItem.firstChild.firstChild,'innerText')
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
"C:\Program Files (x86)\AutoIt3\Include\IE.au3"(2048,50) : REF: definition of _IEPropertyGet().
Func _IEPropertyGet(ByRef $o_object, $s_property)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^


madmasles,
пардон,поправил.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
maxim_porsche,
Предупреждение За нарушение общих правил (пункт В.2):
Старайтесь избегать “Over quoting” (преувеличенное цитирование) - цитируйте только необходимую часть сообщения, которая наилучшим образом подчеркнёт суть цитируемого.


С уважением, ваш Глобальный модератор.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
maxim_porsche,

А так?
Код:
#include <IE.au3>

$oIE = _IECreate(@ScriptDir & '\1.html')
$oItems = _IETagNameGetCollection($oIE, 'p')
For $oItem In $oItems
   If StringInStr(_IEPropertyGet($oItem, 'innerText'), 'Your key is:') Then
	  $oSpan = _IETagNameGetCollection($oItem, 'span', 1);можно 0
      $sKey = _IEPropertyGet($oSpan, 'innerText')
      ExitLoop
   EndIf
Next

ConsoleWrite(StringFormat('Your key is: %s\r\n', $sKey))
1.html:
Код:
<HTML>
  <BODY>
    <DIV class="giveawaydetails"  align="center"  style="margin:0 auto;" >
      <DIV align="left" >
        <P>Congratulations!</P>
        <P>
          Your key is: 
          <SPAN style="color:#000000;" >
            <SPAN style="background-color:#ffffff;" >GI1UMW6Y7IGPFUY6JO</SPAN>
          </SPAN>
        </P>
      </DIV>
    </DIV>
  </BODY>
</HTML>
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Автор
M

maxim_porsche

Новичок
Сообщения
25
Репутация
0
Garrett, вот так да,всё работает. Спасибо :smile:
P.S. Правда в консоли "0" и "O" выглядят как "0" :/ Но главное что выводит всё нормально :smile:
 
Верх