Собственно пытаюсь это осуществить с помощью curl, с которым плохо знаком. Вот пример кода: PHP: <meta http-equiv="Content-Type" content="text/html; charset=windows-1251>"> <?php $login_url = 'http://id.rambler.ru/script/newuser.cgi'; $agent = 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)'; $ch = curl_init(); //инициализация библиотеки //указываем адрес страницы curl_setopt($ch, CURLOPT_URL,$login_url); //указываем заголовок User-Agent curl_setopt($ch, CURLOPT_USERAGENT, $agent); //указываем, что полученная страница должна быть сохранена в переменную curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //указываем, что cURL должен переходить по редиректам curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //выполняем запрос $page = curl_exec($ch); echo $page; $referer = 'http://win.mail.ru/cgi-bin/auth/'; $postLoginFields = array(); $postLoginFields['Login'] = 'elogin'; $postLoginFields['password'] = 'pass'; $postLoginFields['domain'] = 'rambler.ru'; //referer – адрес страницы с которой вы пришли, //т.е. нужно указать адрес страницы на которой находится форма curl_setopt($ch, CURLOPT_REFERER, $reffer); //указываем, что мы отправляем данные методом post curl_setopt($ch, CURLOPT_POST, 1); //добавляем строку с post данными $result = curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postLoginFields)); echo $result; ?> Интересуют такие вопросы: 1) Как мне сделать, что бы перед посылкой запроса, сначала выбивалась картинка с капчей, я ее разгадывал, затем она шла дальше вместе с запросом? 2) С кодом все в порядке? Что добавить? Убрать?
вобщем я не снифал запросы в последнее время- когдато давно писал авторегер рамблера, итак начнем, твои ошибки: для начала нам надо создать ПОЛЬЗОВАТЕЛЬСКУЮ функцию- т е возвращать результат, далее если нерандомно создаеш логины а пытаешся сделать с ручным вводом логина, каптчи и т д- я незнаю зачем нужен такой регер, затем- в самом начале скрипта ты регуляркой должен получить адрес картинки каптчи и хидером отправлять результат ВМЕСТЕ с данными пост запроса ну и так по мелочи.... ЗюЫю и это $referer = 'http://win.mail.ru/cgi-bin/auth/ не кошерно
Да, сначала пытался сделать под mail.ru, потом узнал что сервис, для которого нужно нарегать мыл, не поддерживает mail.ru, пришлось переключится на rambler. Переменные и значения, которые передаются сценарию при регистрации снифить надо? А то я через исходник смотрел какие параметры передаются. Или в исходнике не вся инфа будет? Тогда посоветуйте снифер пожалуйста.
Конечно- надо отснифать запросы которые передаются , я лично пользуюсь плагином для мазилы- из формы никто не передает параметры например когда я писал автрорег майла- там отправлялось около 20 скрытых параметров вшитых в страницу P.S. найди любой даже не работающий авторег в сети и смотри там- чтоб разобраться- например были скрипты на антигейте
Что означают эти строки объясни пожалуйста. Т.е. сделать функцию function(), чтобы потом ее так и вызывать и в скобках передавать параметры?
как вариант- на коленке- но я не проверял PHP: function curl($url,$post) { $cfile = 'cookies.txt'; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1. Gecko/20100202 Firefox/3.5.8"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POSTFIELDS, $post); curl_setopt($ch, CURLOPT_COOKIEJAR, $cfile); curl_setopt($ch, CURLOPT_COOKIEFILE, $cfile); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_POST, 1); $result = curl_exec($ch); curl_close($ch); return $result; }
1) Как мне сделать, что бы перед посылкой запроса, сначала выбивалась картинка с капчей, я ее разгадывал, затем она шла дальше вместе с запросом? 2) С кодом все в порядке? Что добавить? Убрать? Делай конект к http://id.rambler.ru/script/newuser.cgi дальше регулярками парси http://id.rambler.ru/captcha/be5efd6fd1349582fb1c1b2bf877c849.jpg Путь к твоей картинке с твоей сессией.. а потом ещё раз конект только уже передавай полный запрос со всеми значениями Можешь установить Naviscope и им проснифать запросы
в качестве снифера советую плагин для Mozilla под названием livehttpheaders удобно перехватывать запросы браузера
тс, я тебе порекомендую заюзат Xedant Human Emulator. Незаменимая вещь для написания регеров(за редким исключением, когда нужна скорость, либо только серверная работа). Нулёную версию найдёшь в гугле(а если просто пиздец, то можешь написать мне в лс, пока я не ушел отмечать нг). Мануалы - на оф. сайте.
Скачал плагин, залогинился на mail.ru и посмотрел запросы, их около 100 минимум. При работе скрипта можно не делать запросы на картинки разные, а только на страницы, которым передаются данные для входа?