PHP скрипт с выполнением Java в теле php

Статус
В этой теме нельзя размещать новые ответы.

Neow15ard

Постоялец
Регистрация
26 Ноя 2008
Сообщения
418
Реакции
190
Хочу сделать скрипт который будет заходить на указанные мной сайты , причем он не просто должен скачать страницу, и и выполнить существующий на ней ява код) (вообщем накрутка счетчиков)
Сейчас есть библиотека для явы
Для просмотра ссылки Войди или Зарегистрируйся
и скрипт который открывает страницу через сокет.
Подскажите как это чудо объеденить или реализовать иначе ..
Я так понял скрипт должен скачать страницу (сокет) чтотто выполнить (ява) и вернуть страницу ???(или сходить по ява ссылкам счетчиков (тогда ява ненужна??)
да и как прикрутить имитацию отправки данных с дает сразу от 30 до 70 заходов.
 
мб нужно задействовать human emulator?
 
не смотрел библиотеку. Но увидел Using JavaScript in PHP Там точно есть реализация и Java))
Я Не думаю, что сейчас возможно это реализовать только через пхп. Стоит обратить внимание на /showthread.php?t=137682
 
Нужно задействовать сервер.А сервер у меня на Freebsd.

А Xedant на рабочем буке по крону через каждые 3-5 минут пробовали запускать ? Или под эмуль машину ставить ? А хедант у мя для других вещей и он не панацея.Просто надо моск включить ))). А у меня его пока на это не хватает.
 
Короче поставил я себе в итоге эту штуку, не сразу, но поставил. Пришлось даже php перекомпиливать. И вот что я вам скажу: это не то. Она годится только на то, чтобы в php-скриптах использовать Javascript синтаксис (а точнее даже ECMA). Да, все примеры из хелпа отлично работают. Да, можно самому написать какую-нибудь там функцию, к примеру, вычисления синуса рядами фурье, и она тоже будет работать. А вот Math.sin() оно не понимает. alert(), document.write(), getElementById() и так далее - всего этого нет. Так что о том чтобы исполнять им реальные яваскрипты из html не может быть и речи. К сожалению.
 
т.е. на текущий момент единственная реализация рабочая через браузер? Пока рыл тему в нете было пара высказываний что один чел сделал, а другой сказал что реализуемо просто ...
Но что то не просто как то...а нельзя ява скрипты передавать ява машине как то , выдирать из ответа сервера и передавать?
 
Выдирая яваскрипты из ответа сервера - ты выдираешь их из контекста. Если они на окружающий этот контекст не опираются - будут работать и автономно, в твоем php-коде. Но просто обычно яваскрипт на странице используется для манипуляций элементами этой страницы, а вот этих-то элементов в виртуальной машине как раз и не будет. Ни DOM'a, ни экрана, ни событий, ни кук - ничего.

В твоем случае надо действительно копать в сторону управления бровзером из php-скрипта. Наверняка такое не только с IE через ActiveX можно делать. Почитай, что умеет WebKit. В нем наверняка найдется нужный тебе функционал. Что-то типа такого: Для просмотра ссылки Войди или Зарегистрируйся
 
т.е. на текущий момент единственная реализация рабочая через браузер? Пока рыл тему в нете было пара высказываний что один чел сделал, а другой сказал что реализуемо просто ...
Без браузера Оч просто не получится. Браузер что делает?- согластно разметке формирует то, что мы видим. Те нам нужен аналогичный парсер.
Но что то не просто как то...а нельзя ява скрипты передавать ява машине как то , выдирать из ответа сервера и передавать?
ч0? o_O
---------
в теме пара скриптов по снятию скриншотов. Для просмотра ссылки Войди или Зарегистрируйся Возможно, как раз что нужно, там.
 
Майнен скрипт для работы с browsershots
<?php

function FetchUrl($url, $postvars, $timeout){
sleep($timeout);
echo date("r")." fetching $url\r\n";
echo date("r")." $postvars\r\n";
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
// curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT,15);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
curl_setopt($ch, CURLOPT_COOKIEJAR, "c1.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "c1.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
// curl_setopt($ch, CURLOPT_REFERER, $ref);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$url = "http://browsershots.org/accounts/login/";
$postdata = "username=megavasya&password=password";
$page = FetchUrl($url, $postdata, 3);

$url = "http://browsershots.org/";
$postdata = "url=http://site.ru&submit.x=2&submit.y=11&linux_dillo_0_8=on&linux_dillo_2_0=on&linux_dillo_2_1=on&linux_epiphany_2_22=on&linux_firefox_1_0=on&linux_firefox_1_5=on&linux_firefox_2_0=on&linux_firefox_3_0=on&linux_firefox_3_1=on&linux_firefox_3_5=on&linux_flock_1_2=on&linux_flock_2_0=on&linux_galeon_2_0=on&linux_iceape_1_0=on&linux_iceape_1_1=on&linux_iceweasel_2_0=on&linux_iceweasel_3_0=on&linux_kazehakase_0_5=on&linux_konqueror_3_5=on&linux_konqueror_4_2=on&linux_minefield_3_2=on&linux_minefield_3_6=on&linux_navigator_9_0=on&linux_opera_10_0=on&linux_opera_9_63=on&linux_opera_9_64=on&linux_seamonkey_1_1=on&linux_seamonkey_2_0=on&linux_shiretoko_3_1=on&linux_shiretoko_3_5=on&windows_avant_11_7=on&windows_chrome_0_2=on&windows_chrome_0_3=on&windows_chrome_0_4=on&windows_chrome_1_0=on&windows_chrome_2_0=on&windows_chrome_3_0=on&windows_firefox_0_8=on&windows_firefox_0_9=on&windows_firefox_1_0=on&windows_firefox_1_5=on&windows_firefox_2_0=on&windows_firefox_3_0=on&windows_firefox_3_1=on&windows_firefox_3_5=on&windows_flock_1_0=on&windows_flock_1_1=on&windows_flock_1_2=on&windows_flock_2_0=on&windows_flock_2_5=on&windows_flock_3_0=on&windows_k-meleon_1_1=on&windows_k-meleon_1_5=on&windows_minefield_3_2=on&windows_minefield_3_6=on&windows_msie_4_0=on&windows_msie_5_0=on&windows_msie_5_5=on&windows_msie_6_0=on&windows_msie_7_0=on&windows_msie_8_0=on&windows_navigator_8_1=on&windows_navigator_9_0=on&windows_opera_0_27=on&windows_opera_10_0=on&windows_opera_7_0=on&windows_opera_7_11=on&windows_opera_7_54=on&windows_opera_8_0=on&windows_opera_8_53=on&windows_opera_8_54=on&windows_opera_9_25=on&windows_opera_9_26=on&windows_opera_9_27=on&windows_opera_9_50=on&windows_opera_9_51=on&windows_opera_9_52=on&windows_opera_9_60=on&windows_opera_9_61=on&windows_opera_9_62=on&windows_opera_9_63=on&windows_opera_9_64=on&windows_opera_9_80=on&windows_safari_3_0=on&windows_safari_3_2=on&windows_safari_4_0=on&windows_seamonkey_1_1=on&windows_seamonkey_2_0=on&windows_shiretoko_3_1=on&windows_shiretoko_3_5=on&bsd_dillo_2_0=on&bsd_firefox_2_0=on&bsd_galeon_2_0=on&bsd_kazehakase_0_5=on&bsd_seamonkey_1_1=on&width=dontcare&bits_per_pixel=dontcare&javascript=dontcare&java=dontcare&flash=dontcare";
$page = FetchUrl($url, $postdata, 3);
echo $page;
?>
ставим на крон и радуемся.
Больше 180 скринов на один урл не даст сделать.
Небольшой совет по отлову данных, передаваемых через жопу (аджакс, ява и т.п.)
Юзаем плагин на лису - TamperData и мониторим все запросы.
 
Я бы сказал так лучше.
В файле links.txt Линки для захода (выбираются рандомно)
в файле proxys.txt - прокси
В файле agents.txt - Юзер агенты
В скрите заменить логин и пасс(U_LOGIN&U_PASS), регистрация /accounts/login
Файл c1.txt куки от логина
запуск php script.php >>cron.log


PHP:
<?php


function error( $error = false )
{

}
$ii=0;
$handle = @fopen("links.txt", "r");
if ($handle) {
while (!feof($handle)) {
    $buffer[$ii] = fgets($handle);
    $ii++;
}
fclose($handle);
}
$lastt=count($buffer);
$link = $buffer[mt_rand(0,$lastt)];
$agents = file( "agents.txt" );
$proxys = file( "proxys.txt" );
$cagents = count( $agents );
$cproxys = count( $proxys );
$na = mt_rand( 0, $cagents - 1 );
$np = mt_rand( 0, $cproxys - 1 );
$user_agent=$agents[$na];
$proxy=$proxy[$np];

function FetchUrl($url, $postvars, $timeout){
sleep($timeout);
echo date("r")." fetching $url\r\n";
echo date("r")." $postvars\r\n";
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postvars);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT,15);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip');
curl_setopt($ch, CURLOPT_COOKIEJAR, "c1.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "c1.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent);
//curl_setopt($ch, CURLOPT_REFERER, $ref);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
$url = "http://browsershots.org/accounts/login/";
$postdata = "username=U_LOGIN&password=U_PASS";
$page = FetchUrl($url, $postdata, 3);

$url = "http://browsershots.org/";
$postdata = "url=".$link."&submit.x=2&submit.y=11&linux_dillo_0_8=on& linux_dillo_2_0=on&linux_dillo_2_1=on&linux_epipha ny_2_22=on&linux_firefox_1_0=on&linux_firefox_1_5= on&linux_firefox_2_0=on&linux_firefox_3_0=on&linux _firefox_3_1=on&linux_firefox_3_5=on&linux_flock_1 _2=on&linux_flock_2_0=on&linux_galeon_2_0=on&linux _iceape_1_0=on&linux_iceape_1_1=on&linux_iceweasel _2_0=on&linux_iceweasel_3_0=on&linux_kazehakase_0_ 5=on&linux_konqueror_3_5=on&linux_konqueror_4_2=on &linux_minefield_3_2=on&linux_minefield_3_6=on&lin ux_navigator_9_0=on&linux_opera_10_0=on&linux_oper a_9_63=on&linux_opera_9_64=on&linux_seamonkey_1_1= on&linux_seamonkey_2_0=on&linux_shiretoko_3_1=on&l inux_shiretoko_3_5=on&windows_avant_11_7=on&window s_chrome_0_2=on&windows_chrome_0_3=on&windows_chro me_0_4=on&windows_chrome_1_0=on&windows_chrome_2_0 =on&windows_chrome_3_0=on&windows_firefox_0_8=on&w indows_firefox_0_9=on&windows_firefox_1_0=on&windo ws_firefox_1_5=on&windows_firefox_2_0=on&windows_f irefox_3_0=on&windows_firefox_3_1=on&windows_firef ox_3_5=on&windows_flock_1_0=on&windows_flock_1_1=o n&windows_flock_1_2=on&windows_flock_2_0=on&window s_flock_2_5=on&windows_flock_3_0=on&windows_k-meleon_1_1=on&windows_k-meleon_1_5=on&windows_minefield_3_2=on&windows_min efield_3_6=on&windows_msie_4_0=on&windows_msie_5_0 =on&windows_msie_5_5=on&windows_msie_6_0=on&window s_msie_7_0=on&windows_msie_8_0=on&windows_navigato r_8_1=on&windows_navigator_9_0=on&windows_opera_0_ 27=on&windows_opera_10_0=on&windows_opera_7_0=on&w indows_opera_7_11=on&windows_opera_7_54=on&windows _opera_8_0=on&windows_opera_8_53=on&windows_opera_ 8_54=on&windows_opera_9_25=on&windows_opera_9_26=o n&windows_opera_9_27=on&windows_opera_9_50=on&wind ows_opera_9_51=on&windows_opera_9_52=on&windows_op era_9_60=on&windows_opera_9_61=on&windows_opera_9_ 62=on&windows_opera_9_63=on&windows_opera_9_64=on& windows_opera_9_80=on&windows_safari_3_0=on&window s_safari_3_2=on&windows_safari_4_0=on&windows_seam onkey_1_1=on&windows_seamonkey_2_0=on&windows_shir etoko_3_1=on&windows_shiretoko_3_5=on&bsd_dillo_2_ 0=on&bsd_firefox_2_0=on&bsd_galeon_2_0=on&bsd_kaze hakase_0_5=on&bsd_seamonkey_1_1=on&width=dontcare& bits_per_pixel=dontcare&javascript=dontcare&java=d ontcare&flash=dontcare";
$page = FetchUrl($url, $postdata, 3);
echo $page;
?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху