[Multi Curl] Авторизация -> Переход по ссылке -> Пост

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

alexz15

Постоялец
Регистрация
3 Окт 2008
Сообщения
394
Реакции
194
Всем привет, подскажите кто знает, как реализовать "Авторизацию -> Переход по ссылке -> Пост" на Multi Curl?
При чем, последние два пункта должны отдавать те же куки, прокси и браузер, что и в первом.

Для обычного курла все понятно:
PHP:
<?php
  $ch = curl_init();

  curl_setopt($ch, CURLOPT_URL, 'http://url/1/');

  curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla');
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

  curl_setopt($ch, CURLOPT_PROXY, '127.0.0.1:9050');
  curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);

  $cookies = 'cookies.txt';
  curl_setopt($ch, CURLOPT_COOKIEFILE, $cookies);
  curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies);
  
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, "Login=$login&Password=$password");

  // авторизация
  $html = curl_exec($ch);

  // переход по ссылке
  curl_setopt($ch, CURLOPT_URL, 'http://url/2/');
  $html = curl_exec($ch);

  // пост
  curl_setopt($ch, CURLOPT_POST, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, "comment=$comment");
  curl_setopt($ch, CURLOPT_URL, 'http://url/3/');
  $html = curl_exec($ch);

  curl_close($ch);
?>

Можно ли подобное сделать на Multi Curl?
 
Последнее редактирование:
в принципе можно
только первый запрос (авторизация) все равно должен идти отдельно и первым, так как для остальных не будет нужной куки до тех пор пока он не отработается.
прокси и браузер можно указывать для каждого канала один и тот же, единственная проблема это совместный доступ к файлу куков.
избежать ее можно устанавливая куки для каждого из каналов не через файл, а через curl_setopt($ch, CURLOPT_COOKIE,"Name=Value");

альтернативный вариант использовать библиотеку Для просмотра ссылки Войди или Зарегистрируйся
 
Пробовал Для просмотра ссылки Войди или Зарегистрируйся, но он почему-то иногда "вылетает" и все потоки, которые идут с ним, тоже. А так отличный класс, не раз выручал.

Но я сделал так - разбил на 3 части мультикурл:
1. подготовил данные для авторизации, отправил в мультикурл и получил куки. куки сохранял в файлы для всех уникальные: md5($data).
2. затем подготовил данные для "перехода по ссылке" и снова отправил в функцию мультикурл с сохраненными ранее куками, прокси и браузерами.
3. и в третьей части то же самое - с сохраненными куками сделал пост.

Код получился конечно длиннее, чем в обычном курле, но зато и скорость получше)
 
  • Нравится
Реакции: warg
пару недель назад тоже мучался сам, потом другой дев парился. сайт который скальпили использовал ссл переадресацию на ссл переадресацию и получался луп... так забили и с сохранёными куками скачали в софтине сразу все страницы в 28000 хтмл файлов, а потом уже скальпили в пхп....
если для скальпеля, то возможно так легче.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху