Что нового

[Автоматизация] Скрипт для IE (накрутка голосов)

Degu

Новичок
Сообщения
4
Репутация
0
Никак не могу написать небольшой скриптик, вот то что я уже сделал:
#include <IE.au3>
$oIE = _IECreate ("http://hideme.ru/")

Мне нужно на этой странице в поле URL вставить адрес http://lefoto.ru/konkurs11/rate_gallery.php?rt=28&sort=2 потом нажать на HIDE ME и в открывшейся странице нажать на эту ссылку http://lefoto.ru/konkurs11/d_pages/image-9596.shtml (на странице она в виде фотки) При этом откроется новое окно и хотелось бы сделать чтобы после этого прежнее окно закрылось, а лучше сделать так чтобы открывалось не в новом окне а в существующем. А там уже нажать на кнопку Проголосовать за фотографию. После этого нужно ввести капсину, как её вводить я буду думать и искать в инете проги для этого, сейчас главное скрипт написать чтобы он до капсины доходил
 

El Panda

Продвинутый
Сообщения
101
Репутация
59
Никак не могу написать небольшой скриптик, вот то что я уже сделал:
#include <IE.au3>
$oIE = _IECreate ("http://hideme.ru/")

О да, пол дела сделано! 8)

Читай хелп по функциям _IEForormCetCollection(), _IEFormElementGetObjByName() и всё остальное что встретится по пути.

После этого нужно ввести капсину, как её вводить я буду думать и искать в инете проги для этого, сейчас главное скрипт написать чтобы он до капсины доходил.
"Капсину" !? :blink: Ты хотел сказать капчу? Если ты с функциями IE разобраться неможешь, то про распознавание капчи пока забудь, даже с использованием готовых решений.
 
Автор
D

Degu

Новичок
Сообщения
4
Репутация
0
Ясно :smile:
Кое что у меня уже готово:

#include <IE.au3>
$oIE = _IECreate ("http://hideme.ru/")
_IELoadWait ($oIE)

$oForm = _IEFormGetObjByName ($oIE, "URLform")
$oInput =_IEGetObjByName($oIE,"u")

_IEFormElementSetValue ($oInput, 'http://lefoto.ru/konkurs11/rate_gallery.php?rt=28&sort=2')

_IEFormSubmit ($oForm)

Теперь мне надо чтобы скрипт щёлкал по текстовой ссылке Печникова Саша, я на этом застрял, не знаю как это сделать.

А каптча это будет второй этап, тем более если найду готовое решение с ней, то это будет попроще чем написание скрипта
 

El Panda

Продвинутый
Сообщения
101
Репутация
59
Код:
_IEFormElementSetValue ($oInput, 'http://lefoto.ru/konkurs11/rate_gallery.php?rt=28&sort=2')


Тут правильнее переходить сразу на страницу на которой расположено нужное фото (и ссылка для голосования).

Делее делаем такой трюк :smile:
Код:
$source = _IEBodyReadHtml($oIE)
$source = StringReplace($source,"_blank","_self")
_IEBodyWriteHtml($oIE,$source)


Затем либо _IELinkClickByText() либо находим нужную ссылку другим способом.
 
Автор
D

Degu

Новичок
Сообщения
4
Репутация
0
El Panda

Спасибо, я теперь могу дойти до страницы с кнопкой - Проголосовать за фотографию

Кстати если вставлять ссылку сразу на фотку, то когда нажимаешь на кнопку голосовать, пишет ошибка при голосовании

Ниже этого кусочка:
Код:
$source = _IEBodyReadHtml($oIE)
$source = StringReplace($source,"_blank","_self")
_IEBodyWriteHtml($oIE,$source)
_IELinkClickByText($oIE, "Печникова Саша")

пробовал писать:
Код:
$source = _IEBodyReadHtml($oIE)
_IELinkClickByText($oIE, "Проголосовать за фотографию")

или просто:
Код:
_IELinkClickByText($oIE, "Проголосовать за фотографию")

Но всё равно не получаеться, наверно на нажатие кнопки нужно другую команду использовать.

Пытался использовать _IELinkClickByIndex() но тоже не помогло, а других _IELinkClickBy больше нет :(
 

beve

Осваивающий
Сообщения
104
Репутация
31
Но всё равно не получаеться, наверно на нажатие кнопки нужно другую команду использовать.
Код:
#include <IE.au3> 
$oIE = _IECreate ("http://hideme.ru/") 
_IELoadWait ($oIE) 

$oForm = _IEFormGetObjByName ($oIE, "URLform") 
$oInput =_IEGetObjByName($oIE,"u") 

_IEFormElementSetValue ($oInput, 'СЮДА ВПИШИ ССЫЛКУ НА ТВОЙ САЙТ') 
_IEFormSubmit ($oForm)

$source = _IEBodyReadHtml($oIE)
$url=StringRegExpReplace($source,'(?s).*href="(.*)" target=_blank>Печникова Саша.*',"\1")

$oIE1 = _IECreate ($url) 
;_IEQuit ( $oIE) ;закроет первое открытое окно IE
_IELoadWait ($oIE1) 
$oForm = _IEFormGetObjByName ($oIE1, "frmRate") 
_IEFormSubmit ($oForm)
А теперь учись капчу разгадывать... :blum:
Можеш заменить вторую строчку этим: $oIE = _IECreate ("http://hideme.ru/",0,0) , но тогда убери точку с запятой перед: _IEQuit ( $oIE) ;закроет первое открытое окно IE, и посмотри что будет.
 
Автор
D

Degu

Новичок
Сообщения
4
Репутация
0
beve
Спасибо за этот прекрастный код :smile:
Я вам написал личное сообщение, хотелось бы подробнее узнать как он работает (а то комментариев нет и я не всё понимаю), может даже аськами обменяемся если получится.

Каптчу я расшифрую используя прогу FineReader (она переводит картинки в текст), только мне надо автоматизировать всё это, сейчас займусь этим.
 

beve

Осваивающий
Сообщения
104
Репутация
31
а то комментариев нет и я не всё понимаю
Наверное там для тебя непонятно только вот это место:?
Код:
$source = _IEBodyReadHtml($oIE)
$url=StringRegExpReplace($source,'(?s).*href="(.*)" target=_blank>Печникова Саша.*',"\1")
Так тут все просто. Когда загружается первая страница, там при клике на ссылку под фоткой, вызывается событие, которое прописано в onclick на странице. А там прописано: смотреть фотку "крупным планом" по такой то ссылке. Вот эту ссылку мы ищем, и заносим в переменную $url...

Degu, поставь себе эту прогу, "примочку" для ie:Ссылка на описание. И тебе не придется всматриваться в код html страницы в поисках названия форм или другого, а сможеш выдеть какие имена имеют формы на странице, сможеш вычислить то что тебе нужно по работе с функциями что в IE.au3.
 
Верх