Что нового

Кликнуть в определённую постоянно меняющуюся точку (кружок) на картинке

alex33

Скриптер
Сообщения
1,457
Репутация
186
Здравствуйте. Подскажите как быть.
Есть сайт. Там чтобы открыть сайт / письмо / тест нужно сначало кликнуть мышкой на кружок, затем просмотреть сайт...
Так вот. Этот кружок это случайная генерируемая картинка на сервере на которой он нарисован. При клике по картинке на сервер передаются координаты x y мыши, и если они совпадают с координатоми кружка - появляется ссылка, иначе она удаляется на 24 часа...
Надеюсь пояснил нормально.
Как бы кликнуть на этот кружок?

Вот скриншоты и исходники.
За ссылки, рекламу и т.д. извиняюсь.
AutoIt v3 Window Info (при наведении на кружок):
Код:
>>>> Window <<<<
Title:	SEO sprint - Mozilla Firefox
Class:	MozillaWindowClass
Position:	-7, -7
Size:	1380, 742
Style:	0x17CF0000
ExStyle:	0x00000100
Handle:	0x000904B8

>>>> Control <<<<
Class:	
Instance:	
ClassnameNN:	
Name:	
Advanced (Class):	
ID:	
Text:	
Position:	
Size:	
ControlClick Coords:	
Style:	
ExStyle:	
Handle:	

>>>> Mouse <<<<
Position:	527, 601
Cursor ID:	0
Color:	0x915C79

>>>> StatusBar <<<<

>>>> ToolsBar <<<<

>>>> Visible Text <<<<


>>>> Hidden Text <<<<
Исходник кнопки:
Код:
<td valign="top" style="background: #F3F2E7 url('captcha/captcha-ss/captcha.php?uid=45128495946258983eeac28178dfbb7a3182e1ea53f2c22151226452781') no-repeat 0 0;" class="normalm" id="45128495946258983eeac28178dfbb7a3182e1ea53f2c22151226452781">
                                            Лучшая партнёрская программа 2014 года
<span class="desctext">Bonus - 10$ при регистрации</span>
                                        </td>
Один из вариантов кружка ( captcha.php ):
Код фрагмента страницы:
Код:
                        <div id="entermsg"></div>
                        <h1>Здесь зарабатывают на просмотре сайтов</h1>
                        На <span style="font-weight: bold; text-shadow:1px 1px 1px #ABBAB0;"><span style="color: #008C2C;">SEO</span> sprint</span> есть много чего, за что платят реальные деньги: просмотр рекламных сайтов, чтение писем, участие в тестах, а также выполнение несложных заданий. Работа не пыльная и интересная. А вместе с рефералами - ещё и весьма доходная!
                        <table class="workbtn-panel"><tbody><tr><td><a class="filtermnuactive1" title="Просмотр сайтов за деньги" href="f54e947e863fc7392a0dbe9eceaadfaa8fddac085237adf4b0b116cad6aadc15"></a><a class="filtermnu2" title="Чтение оплачиваемых писем" href="c9eacaf1fbfaa6fa1a9d3fc35ebd15f33b17b5d4448f5575fcaa1b1e52453387"></a><a class="filtermnu3" title="Участие в тестах за деньги" href="e6102d96b83ba0b0aea0e66609f20a2963c7ef1e05b101f67f4fed75581cfd25"></a><a class="filtermnu4" title="Выполнение оплачиваемых заданий" href="/work-task.php"></a></td></tr></tbody></table>
                                                    <h2>Зарабатывай, просматривая сайты рекламодателей</h2>
                            <table class="work-serf">
                                                                    <tbody><tr id="tr29121">
                                        <td class="normal" valign="top" width="40">
                                                                                            <span id="adstatus29121" class="serfimghigh" title="Реклама: 29121, Рекламодатель: 255416 *****"></span>
                                                                                    </td>

                                        <td id="45128495946258983eeac28178dfbb7a3182e1ea53f2c22151226452781" class="normalm" style="background: #F3F2E7 url('captcha/captcha-ss/captcha.php?uid=45128495946258983eeac28178dfbb7a3182e1ea53f2c22151226452781') no-repeat 0 0;" valign="top">
                                            Лучшая партнёрская программа 2014 года
<span class="desctext">Bonus - 10$ при регистрации</span>
                                        </td>

                                        <td class="normal" style="width: 60px; text-align: right; padding-right: 10px;" nowrap="nowrap" valign="top">
                                            <span class="smoolgray" title="Осталось визитов">(1506058)</span> <span class="clickprice">0.030 р</span>

                                                                                                                                                <a class="workcomp" href="/complaint.php?m=1&amp;adv=29121&amp;cnt=834eb2a2e58a33e64cbb74a848b66b25" title="Пожаловаться на рекламу" target="_blank"></a>
                                                                                                <a class="workevents" href="/userinfo.php?user=255416" title="Рекламодатель" target="_blank"></a>
                                                                                        <a class="workvir" href="http://online.us.drweb.com/result/?url=http://invest-system.net/index.php?option=com_content&amp;view=article&amp;id=100&amp;Itemid=218" title="Проверить ссылку на вирусы" target="_blank"></a>
                                        </td>
                                    </tr>
...
<tr id="tr400753">
                                        <td class="normal" valign="top" width="40">
                                                                                            <span id="adstatus400753" class="serfimg" title="Реклама: 400753, Рекламодатель: 2531680 *****"></span>
                                                                                    </td>

                                        <td id="421056959162126f0b949dd61520af800988d4ccd8bdf68140987422079" class="normalm" style="background: #F3F2E7 url('captcha/captcha-ss/captcha.php?uid=421056959162126f0b949dd61520af800988d4ccd8bdf68140987422079') no-repeat 0 0;" valign="top">
                                            Buxvertise - надежная и постоянная каждодневка!Премиум
<span class="desctext">Надежная каждодневка!</span>
                                        </td>

                                        <td class="normal" style="width: 60px; text-align: right; padding-right: 10px;" nowrap="nowrap" valign="top">
                                            <span class="smoolgray" title="Осталось визитов">(2777)</span> <span class="clickprice">0.025 р</span>

                                                                                                                                                <a class="workcomp" href="/complaint.php?m=1&amp;adv=400753&amp;cnt=965334f355ade416976685221e746cce" title="Пожаловаться на рекламу" target="_blank"></a>
                                                                                                <a class="workevents" href="/userinfo.php?user=2531680" title="Рекламодатель" target="_blank"></a>
                                                                                        <a class="workvir" href="http://online.us.drweb.com/result/?url=http://www.seosprint.net/work-task-read.php?adv=700286&amp;cnt=4793d2248cb5b60b67891ae0e5b17306" title="Проверить ссылку на вирусы" target="_blank"></a>
                                        </td>
                                    </tr>
                                                            </tbody></table>        
                                                <div id="rollbaner"><a href="/gobaner.php?link=99097" target="_blank" title="http://i-love-seosprint.ru?utm_medium=affiliate&amp;utm_source=mbeliashin"><img src="/advbaners/1410312245237.gif" alt="" height="60" width="468"></a></div>

Основной скрипт:
Код:
jQuery(document).ready(function(){
    $(".normalm").click(function(e){
        var oLeft = 0, oTop = 0;
        element = this;
        if (element.className == 'normalm') {
            do {
                oLeft += element.offsetLeft;
                oTop  += element.offsetTop;
            } while (element = element.offsetParent);
            var sx = e.pageX - oLeft;
            var sy = e.pageY - oTop;
            var elid = $(this).attr("id");
            fixed(elid, sx, sy);
        }
    }); 
})                

function goserf(obj)
{
    obj.parentNode.innerHTML = "<span class='textgreen'>Спасибо за визит</span>";
    return false;
}

function fixed(p1, p2, p3)
{
    var myReq = getHTTPRequest();
    var params = "p1="+p1+"&p2="+p2+"&p3="+p3;
    function setstate()
    {
        if ((myReq.readyState == 4)&&(myReq.status == 200)) {
            var resvalue = myReq.responseText;
            if (resvalue != '') {
                if (resvalue.length > 12) {
                    if (elem = document.getElementById(p1)) {
                        elem.style.backgroundImage = 'none';
                        elem.className = 'goadvsite';
                        elem.innerHTML = '<div><a target="_blank" href="/'+resvalue+'" onclick="javascript:goserf(this);">Просмотреть сайт рекламодателя</a></div>';
                    }
                } else {
                    if (elem = document.getElementById(resvalue)) {
                        $(elem).fadeOut('low', function() {
                            elem.innerHTML = "<td colspan='3'></td>";
                        });
                    }
                }
            }
        }
    }
    myReq.open("POST", "/proc-service/us-fixedserf.php", true);
    myReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    myReq.setRequestHeader("Content-lenght", params.length);
    myReq.setRequestHeader("Connection", "close");
    myReq.onreadystatechange = setstate;
    myReq.send(params);
    return false;
}

Скрин страницы:

P.S. За какими-либо дополнительными данными или по дополнительным вопросам пишите в личку.
 
Автор
alex33

alex33

Скриптер
Сообщения
1,457
Репутация
186
Ну да... А где лучше?
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Самый простой вариант это поиск пикселя с таким цветом...
А когда координаты получишь, то либо mouseclick либо controlclick(с поправкой)
 
Автор
alex33

alex33

Скриптер
Сообщения
1,457
Репутация
186
Я искал, но он всё равно промахивается... Сейчас ещё раз попробую...
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
У меня это подводит курсор к точке:
Код:
$a = PixelSearch(0,0,1280,1024, 0x8D4D67,10)
MouseMove($a[0], $a[1])
 
Автор
alex33

alex33

Скриптер
Сообщения
1,457
Репутация
186
Спасибо, щас попробую.


Добавлено:
Сообщение автоматически объединено:

Ура! Всё получилось, всё работает. Спасибо.


Добавлено:
Сообщение автоматически объединено:

inververs
Вчера работало, а сегодня уже не подводит...
 
Автор
alex33

alex33

Скриптер
Сообщения
1,457
Репутация
186
Возможно цвет изменился.
Возможно. Потому что до этого я когда пробовал тоже сначало работало, а потом переставало.
Написать бы унивирсальную штучку, чтобы всегда кликал...
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
alex33 [?]
унивирсальную штучку
Попробуйте UIAutomate. Если Inspect определит эти "точки", как объекты, возможно, можно будет как-то их однозначно идентифицировать (по части текста ссылки, по размеру, по имени...) и кликать.
 
Автор
alex33

alex33

Скриптер
Сообщения
1,457
Репутация
186
InnI [?]
(по части текста ссылки, по размеру, по имени...) и кликать.
Я же говорю:
alex33 [?]
Этот кружок это случайная генерируемая картинка на сервере на которой он нарисован. При клике по картинке на сервер передаются координаты x y мыши, и если они совпадают с координатоми кружка - появляется ссылка, иначе она удаляется на 24 часа...
Как бы кликнуть на этот кружок?
То есть надо кликнуть именно по картинке, по определённой её части, по определённым координатам которые каждый раз меняются.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
alex33 [?]
кликнуть именно по картинке
Спрошу ещё раз. Определяет ли утилита Inspect эту картинку? Если да, то какую информацию отображает?


Добавлено:
Сообщение автоматически объединено:

К сожалению, Inspect не видит эти "точки", как объекты.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
alex33 [?]
И что тогда делать?
Систему обучения. Цвета меняются через какое-то время. Значит в течение этого времени можно искать определённый цвет и кликать. Когда цвет не найден - выводим сообщение, вручную меняем цвет и скрипт кликает до следующей смены цвета. Текущие цвета запоминаем в файле, возможно их количество ограничено. В любом случае база цветов будет расти и всё меньше нужно будет вручную их вводить, т.к. при отсутствии цвета читаем известные цвета из файла, а при отсутствии - вводим вручную, чем снова пополняем базу.
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
alex33
Радиус этих кругов различается? Круг залит одним цветом?

Можно попросту написать универсальную функцию для поиска кругов определенного радиуса ( скажем от 10 до 15 ) пикселей.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Кому интересно побаловаться - вот данные регистрации

E-mail: [email protected]
Пароль: 3Lq4SbkJli

Только там мультисессии запрещены.
 

iwak

Новичок
Сообщения
28
Репутация
0
Можно попробовать удалить все элементы с сайта, кроме кружка и таблицы его содержащей.
После чего сделать скриншот нужной области и инвертировать изображение в черно-белое.



Ну а дальше думаю все понятно.
 
Верх