[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: скрипт для добавления определеннго текста в формы
feniks_iopok
есть необходимость в автоматическом добавление текста в определнные формы и нажатие на кнопки на стороннем сайте...с помощью какого языка( как я понял на ява нужно) сделать такой скрипт, и можете кинуть ссылки или просто сказать каким образом можно взаимодействовать с сайтом, делать определенные действия на нем(автоматом)
Спасибо!



Спустя 39 минут, 9 секунд (16.07.2011 - 15:14) kovaldm написал(а):
С Явой не знаком, но можно сделать на php + CURL.

Спустя 24 минуты, 52 секунды (16.07.2011 - 15:38) Evilsoul написал(а):
feniks_iopok
на JS или JQuery делать нужно

Спустя 1 час, 15 минут, 51 секунда (16.07.2011 - 16:54) Raito-kun написал(а):
Цитата
на JS или JQuery делать нужно

а это не одно и тоже, случаем? можно было еще список фреймворков составить.

это делается на php, отсыланием post данных в форму курлом, как уже было сказано.

Спустя 25 минут, 38 секунд (16.07.2011 - 17:20) feniks_iopok написал(а):
если это не сильно сложно, можете пример показать? пхп знаю на троечку, курлом не пользовался....если не затруднит пример, буду благодарен

Спустя 3 минуты, 32 секунды (16.07.2011 - 17:23) Haotarez написал(а):
function get_page($url,$post='',$r, $acc){
if($r == false){
$r = 'http://www.yandex.ru/';
}
$cookie_file='cookiefile.txt';
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_NOBODY,0);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 WebMoney Advisor");
curl_setopt($ch, CURLOPT_REFERER, $r);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
$header = array();
if($acc){
$header[] = 'Accept: image/png,image/*;q=0.8,*/*;q=0.5';
} else {
$header[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
}
$header[] = 'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7';
$header[] = 'Accept-Language: ru,en-us;q=0.7,en;q=0.3';
$header[] = 'Referer: '.$r;
$header[] = "HTTP_CLIENT_IP: ".rand(80,224).".".rand(80,224).".".rand(80,224).".".rand(80,224);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, true);
if($post) curl_setopt($ch, CURLOPT_POSTFIELDS, implode('&', $post));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
$output=curl_exec($ch);
$info=curl_getinfo($ch);
if($output!==false){
return $output;
} else {
echo "x";
get_page($url,$post,$r);
}
}



Вот я использую для таких вещей тыщу лет назад написанную функцию, переделайте под свои нужды и в путь.

Спустя 3 минуты, 15 секунд (16.07.2011 - 17:27) feniks_iopok написал(а):
для более быстрого понимая можете сказать что именно он делает?)

Спустя 13 минут, 26 секунд (16.07.2011 - 17:40) Haotarez написал(а):
feniks_iopok
вызываете функцию и передаете ей в качестве первого аргумента ссылку куда коннектимся (в вашем случае это адрес файла который описан в атрибуте тега form - action), во втором аргументе передаем POST данные (в вашем случае надо сделать выборку всех полей формы и сериализовать их в виде пара=значиние&пара2=значиние2... и передать эту строку в виде второго аргумента), третий аргумент это реферер, ну то есть вы даете понять принимающему форму скрипту что вы постите эти данные не со своего локального компа а с их родного сайта например, можно указать false, тогда будет создана видимость что вы пришли с Яндекса : ), четвертый аргумент установите в false если запрашиваете страницу, или true если запрашиваете картинку. Но прочитать док. по CURLу все равно не помешает. Иначе вопросы ваши будут плодить ещё больше вопросов, а ответы на них не будут достаточно ясны : )

Спустя 3 минуты, 44 секунды (16.07.2011 - 17:44) feniks_iopok написал(а):
спасибо) пощел читать : )

Спустя 1 минута, 16 секунд (16.07.2011 - 17:45) Raito-kun написал(а):
можно обойтись без кучи ненужных настроек и останется
1 строчка - коннект к урлу
2 ретурн трансфер по желанию
3 передача поста
4 выполнить запрос
Haotarez
я в вашем примере передачи поста не вижу, кстати. помоему тот пример вообще не в тему и не имеет отношения к передачи поста в форму, та функция тупо берет данные страницы и делает это еще и с кучей геморроя.

вот мой пример
$ch = curl_init();
$data = array('name' => 'foo', 'surname' => 'bar');
curl_setopt($ch, CURLOPT_URL, 'http://site_with_form');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);

он передаст полям name и surname в форме на сайте http://site_with_form значения foo и bar соответственно. для нажатия кнопки нужно передать сабмит понятное дело.

Спустя 4 минуты, 12 секунд (16.07.2011 - 17:49) feniks_iopok написал(а):
Raito-kun
Цитата
для нажатия кнопки нужно передать сабмит понятное дело.

как это осуществить? остальное предельно понятно стало вроде : ) спасибо

Спустя 5 минут, 9 секунд (16.07.2011 - 17:55) Raito-kun написал(а):
добавить в массив имя кнопки сабмита и соответственно value.
например для формы с такой кнопкой
<input type="submit" name="subscribe" value="Subscribe" />

чтобы ее нажать надо добавить
$data = array('name' => 'foo', 'surname' => 'bar', 'subscribe' => 'Subscribe');


еще не помню правильно ли с массивом, если не получится, в постфилд указывай так
curl_setopt (CURLOPT_POSTFIELDS, "name=foo&surname=bar&subscribe=Subscribe");
но вроде должно работать и с первым вариантом

Спустя 53 секунды (16.07.2011 - 17:55) feniks_iopok написал(а):
спасибо! вроде все не так сложно)

Спустя 1 минута, 45 секунд (16.07.2011 - 17:57) Raito-kun написал(а):
Цитата
спасибо! вроде все не так сложно)

конечно, когда внятно дают ответ, а не функции на 2 страницы с кучей ненужных опций, все становится понятно

Спустя 4 минуты, 4 секунды (16.07.2011 - 18:01) Haotarez написал(а):
Raito-kun
написал же делал 100 лет назад, пост она кстати на удивление слаженно передает, если что... правда я функцию какую-то усеченную запостил (исправил в предыдущем посте)

Куча геморроя - это хидеры на все случаи жизни % ) Написал же подогнать под свои нужды и юзать в своё удовольствие.


Спустя 1 минута, 50 секунд (16.07.2011 - 18:03) Raito-kun написал(а):
Haotarez
как-раз после таких ответов я боялся юзать курл когда был новичком wink.gif да и вообще думал что это что-то сверхестественное biggrin.gif
да, увидел там пост, сори. просто такое нагромождение очень отталкивает smile.gif

Спустя 4 минуты, 10 секунд (16.07.2011 - 18:07) Haotarez написал(а):
Цитата
конечно, когда внятно дают ответ, а не функции на 2 страницы с кучей ненужных опций, все становится понятно

ну, молю, простите моё желание помочь, обещаю больше не давать исходников : )

ЗЫ, ваш пример с формами например моих сайтов ни с одной не будет работать (я кстати, почти уверен, что не одинок в своих алгоритмах обработки пост данных)

Спустя 3 минуты, 23 секунды (16.07.2011 - 18:11) Raito-kun написал(а):
просто мы по разному преподносим информацию. я стараюсь ясно объяснить механизм, а вы даете новичку юзать огромную функцию, которую без понимания он не исправит под свои нужды. согласен что на некоторых сайтах где есть проверки юзер агента и прочей лабуды он не пройдет, но не думаю что у него такая сложность и если она есть, то с пониманием человек сам допишет или спросит почему не проходит smile.gif

ps эта функция если хоть когда-то заходит в элс, может впасть в бесконечную рекурсию


_____________
есть сайт, 3-4к уников в сутки. зарабатываю 100 рублей в день, почему так мало?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.