Просмотр полной версии : Надо написать JS для голосования (Битрикс), меняю на скрипт авто-тор-прокси-свичера
Эксмо создало конкурс, вот по этой ссылке профиль моей знакомой в этом конкурсе:
http://eksmo.ru/vampireacademy/list/1090/
Уже написал тор-прокси-свичер, запоминающий, с каких айпи уже голосовалось, и переключающий айпи (shell script, работает под Fedora 12 и Ubuntu 10.04 - проверено).
Осталось написать JS-часть, которая будет автоматически сабмитить 5 звездочек за указанное фото. В частности, в исходниках странички заинтересовала следующая часть:
<td><div id="vote_286445_3" class="star-active star-empty" title="4" onmouseover="voteScript.trace_vote(this, true);" onmouseout="voteScript.trace_vote(this, false)" onclick="voteScript.do_vote(this, 'vote_286445',
{'SESSION_PARAMS':'3c702ffdc5465a0d6a9e2199c392631 e',
'PAGE_PARAMS':
{'ELEMENT_ID':'286445'
},
'sessid':'7ff150086454d52a33bb8c52e00f92ec',
'AJAX_CALL':'Y'
})"></div></td>
Похоже нужно копать в эту сторону? Как бы проще сделать? Юзаю Russian Fedora 12 x86_64
Помогите, люди добрые, как бы так накодить автоголосовалку :) Обменяю код автоголосовалки на код автоматического прокси свичера для тора с запоминанием использованных айпи... Удобная штука
Ну если я правильно подставил все параметры, то при открытии страницы добавляй в конец скриптом этот код яваскрипта, заменяя строки:
"{'SESSION_PARAMS':'1111111111111111111111111111111 11',"
"'sessid':'222222222222222222222222222222222',"
строчками из загруженного документа регулярным выражением или проверками.
<script type="text/javascript">
voteScript.do_vote('vote_286445_4','vote_286445',
{'SESSION_PARAMS':'1111111111111111111111111111111 11',
'PAGE_PARAMS':
{'ELEMENT_ID':'286445'
},
'sessid':'222222222222222222222222222222222',
'AJAX_CALL':'Y'
});
voteScript.do_vote('vote_286431_4','vote_286431',
{'SESSION_PARAMS':'1111111111111111111111111111111 11',
'PAGE_PARAMS':
{'ELEMENT_ID':'286431'
},
'sessid':'222222222222222222222222222222222',
'AJAX_CALL':'Y'
});
voteScript.do_vote('vote_286427_4','vote_286427',
{'SESSION_PARAMS':'1111111111111111111111111111111 11',
'PAGE_PARAMS':
{'ELEMENT_ID':'286427'
},
'sessid':'222222222222222222222222222222222',
'AJAX_CALL':'Y'
});
</script>
Только пробелы уберите плз между единицами (форум сам поставил пробелы, хз почему).
Нашел вот код:
<?
$html = file_get_contents('http://eksmo.ru/vampireacademy/list/1090/');
#echo $html;
$dom = new domDocument;
/** загружаем html в объект **/
$dom->loadHTML($html);
$dom->preserveWhiteSpace = false;
/** элемент по тэгу **/
$tables = $dom->getElementsByTagName('table');
/** получаем все строки таблицы **/
$rows = $tables->item(0)->getElementsByTagName('tr');
/** цикл по строкам **/
foreach ($rows as $row)
{
/** все ячейки по тэгу **/
$cols = $row->getElementsByTagName('td');
/** выводим значения **/
echo $cols->item(0)->nodeValue.'<br>';
echo $cols->item(1)->nodeValue.'<br>';
echo '<hr>';
}
?>
Он загружает всякий трэш из таблицы... Как бы сдеать чтобы чисто идентификатор сессии подгружался в переменную, например, $phpsession,... В терминале линуксовом я бы просто сделал wget | grep phpsession ID... А это кстати идея. Может проще через шелл-скрипт сделать? :))
Посоветуйте пожалуйста более конкретным куском кода! Спасибо :)
Помогите, уже второй день с этим сижу. Выкладываю всё, что у меня есть:
Скрипт автосмены прокси для тора, с функцией запоминания использованных айпи (работает):
#!/bin/bash
# Объясняю что делает скрипт... Функция воут
function vote {
# Включаем запущенный и работающий Proxy (Polipo) для консоли
export http_proxy="http://localhost:8118"
# Меняем IP TOR'а
kill -HUP `pidof tor`
# Спим 3 секунды (возможно ненужно...)
sleep 3
# Загружаем IP в переменную ip с сайта whatismyip.org
ip=`wget -O - -q whatismyip.org --no-cache`
# Ищем в файле ip.txt строчку с только что выданным $ip
test=`cat ip.txt | grep $ip`
# Если такая строчка есть, значит IP уже использовался для голосования, сообщаем
# и перезапускаем функцию vote с начала
if [ "$test" == "$ip" ]; then
echo $ip "was found in the list; getting new IP..."
vote
else
echo $ip "is NEW IP! USE IT NOW! I will add it to used ip list now."
# А если нету, говорим об этом, добавляем новый IP в файлик ip.txt, выключаем proxy для консоли
echo $ip >> ip.txt
unset http_proxy
exit 0
fi
}
# Запускаем функцию воут
vote
Скрипт воута непосредственно, загружает HTML-страницу через прокси, в конец страницы дописывает код голосования. Не сделал автоматический рефреш браузером, т.к. скрипт не работает до конца корректно. Что я делаю неправильно? Как мне отсылать результаты на сервер с использованием локального index.html, вообще, смогу ли я это, нужно ли сохранить все побочные скрипты, которые "тянет" страница index.html, или же нужно делать как-то по-другому? Нужно ли чистить кукисы после каждого голосования, или это не обязательно? Если нужно, как почистить их (кукисы оперы например) через шелл-скрипт? Пожалуйста, посоветуйте!
В итоге моя задача связать оба скрипта, чтобы тор менял айпи, успешно переходилось, голосовалось, и так по кругу. Ну, вы поняли :) Вот сам скрипт:
#!/bin/bash
rm index.html
export http_proxy="http://localhost:8118"
v1=286445
v2=286431
v3=286427
session=`wget -O - -q http://eksmo.ru/vampireacademy/list/1090/ --no-cache | grep SESSION_PARAMS | uniq | cut -b 20-51`
sessid=`wget -O - -q http://eksmo.ru/vampireacademy/list/1090/ --no-cache | grep sessid | uniq | cut -b 11-42`
script="<script type=text/javascript>
voteScript.do_vote('vote_"$v1"_4','vote_"$v1"',
{'SESSION_PARAMS':'"$session"',
'PAGE_PARAMS':
{'ELEMENT_ID':'"$v1"'
},
'sessid':'"$sessid"',
'AJAX_CALL':'Y'
});
voteScript.do_vote('vote_"$v2"_4','vote_"$v2"',
{'SESSION_PARAMS':'"$session"',
'PAGE_PARAMS':
{'ELEMENT_ID':'"$v2"'
},
'sessid':'"$sessid"',
'AJAX_CALL':'Y'
});
voteScript.do_vote('vote_"$v3"_4','vote_"$v3"',
{'SESSION_PARAMS':'"$session"',
'PAGE_PARAMS':
{'ELEMENT_ID':'"$v3"'
},
'sessid':'"$sessid"',
'AJAX_CALL':'Y'
});
</script>
"
wget http://eksmo.ru/vampireacademy/list/1090/
echo $script >> index.html
unset http_proxy
# ну и тут потом добавить что-то типа opera ~/index.html, но не работает всё равно скрипт...
exit 0
Мозг разрывается... HEEELP PLZ :)
Топик убежал ( Никто не поможет?...
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot