Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Проблема с сUrl (https://forum.antichat.xyz/showthread.php?t=135582)

Legion342 17.08.2009 17:32

Проблема с сUrl
 
была задача парсить скрытый контент с одного сайта для этого использовался cUrl некоторое времяпарсен работал нормально через прокси обращалсяк нужной страницы передавал куки и забирал нужный контент, через некоторое время перестал работать с нужными куками хотя если просто открываешь страницу с теми куками то все нормально

вот часть кода которая отвечает за загрузку страницы
PHP код:

$url="тут адрес страницы";
$ua 'User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 WebMoney Advisor';
$ch=curl_init(); 
curl_setopt($chCURLOPT_URL$url); 
curl_setopt($chCURLOPT_HEADER1); 
curl_setopt($chCURLOPT_USERAGENT$ua); 
curl_setopt($chCURLOPT_TIMEOUT30); 
curl_setopt($chCURLOPT_COOKIE"тут куки"); 
$ret curl_setopt($chCURLOPT_PROXY'прокси'); 
//$ret = curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'login:password'); 
//$ret = curl_setopt($ch, CURLOPT_TIMEOUT,        30); 
curl_setopt($chCURLOPT_RETURNTRANSFERtrue); 
$string1=curl_exec($ch); 


может кто подскажет в чем может быть причина

Pashkela 17.08.2009 17:42

попробуй добавить

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);

Legion342 17.08.2009 17:52

нет не помогло(

еще добавил строчку

curl_setopt($ch, CURLOPT_REFERER, "http://www.google.com");

Pashkela 17.08.2009 17:54

tamper data и смотри, что шлет, какой рефер и т.д.

Legion342 17.08.2009 18:29

шлет все тоже самое что и я добавил только заголвки еще в код

PHP код:

$this1->headers[] = 'Host: http://www.адрес того сайта';
  
$this1->headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';  
$this1->headers[] = 'Accept-Language: en-us,en;q=0.7,ru;q=0.3'
 
$this1->headers[] = 'Accept-Encoding: gzip,deflate';
  
$this1->headers[] = 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7'
 
$this1->headers[] = 'Connection: keep-alive';  
$this1->headers[] = 'Keep-alive: 300';
  
$this1->headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8'

и изменил на такую строчку заголвок
PHP код:

curl_setopt($chCURLOPT_HEADER$this1->headers); 


Zitt 17.08.2009 18:39

как куки выглядят? может с ними чтото...
попробуй сначала послать запрос на страницу логина а потом
PHP код:

preg_match_all('#Set-Cookie:\s([^;]*);#is'$string1$gets);
$coc join(';'$gets[1]); 

юзай этьи куки.....

FireFenix 17.08.2009 18:42

если куки берутся и передаются, самое тру использовать
PHP код:

curl_setopt($curlCURLOPT_COOKIEFILE"cookiefile.txt");
curl_setopt($curlCURLOPT_COOKIEJAR"cookiefile.txt"); 


h4xx0r 17.08.2009 19:12

Нахера выдирать куки регуляркой и уж тем более хранить их в файле, если можно просто поставить опцию curl_setopt($curl, CURLOPT_COOKIELIST, "") и войти на сайт.
И в дальнейшем использовать этот один курл хэндл на все запросы (не ебя себе мозг), только меняя url.
Переключение между post и get запросами осуществляется curl_setopt($curl, CURLOPT_POST, 1) и curl_setopt($curl, CURLOPT_HTTPGET, 1) соответственно.

FireFenix 17.08.2009 19:23

Цитата:

Сообщение от h4xx0r
Нахера выдирать куки регуляркой и уж тем более хранить их в файле, если можно просто поставить опцию curl_setopt($curl, CURLOPT_COOKIELIST, "") и войти на сайт.
И в дальнейшем использовать этот один курл хэндл на все запросы (не ебя себе мозг), только меняя url.
Переключение между post и get запросами осуществляется curl_setopt($curl, CURLOPT_POST, 1) и curl_setopt($curl, CURLOPT_HTTPGET, 1) соответственно.

Что бы ты спросил неудачнег!!!

пхп-шный курл не держит CURLOPT_COOKIELIST

Fepsis 17.08.2009 19:31

Да выложил бы "тут адрес страницы" давно бы уже сказали что не так...

geforse 17.08.2009 20:55

Цитата:

Сообщение от FireFenix
если куки берутся и передаются, самое тру использовать
PHP код:

curl_setopt($curlCURLOPT_COOKIEFILE"cookiefile.txt");
curl_setopt($curlCURLOPT_COOKIEJAR"cookiefile.txt"); 


а я это использую )

curl_setopt($ch, CURLOPT_COOKIEJAR, "./cook");
curl_setopt($ch, CURLOPT_COOKIEFILE, "./cook");


А то придет хакир и сделает запрос сайт.ru/cookiefile.txt (конечно это из раздела фантастики, но надо же было мне как-то аргументировать))


ТС давай урл, посмотрим

Legion342 18.08.2009 02:55

qiq.ru вот адрес сайта с него надо забрать некоторую инфу

Legion342 18.08.2009 12:04

перепробовал уже все что знаю и cUrl пока проблему не получается решить с авторизацией
не получилось передать логи и пароль чтобы авторизоваться на сайте...


может кто каким советом подскажет еще

Zedi 18.08.2009 12:43

Совет: брать все что дает тампер дата и все получится

Legion342 18.08.2009 12:58

все тоже самое посылаю абсолютно

b3 18.08.2009 13:46

Да криво ты чтото брал, вот у меня авторизовывается.
PHP код:

<?php
$ua 
'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2';
$ref 'http://qiq.ru/';
$post 'action=login&login=b333&pass=123123123&mem=1';
$ch curl_init('http://qiq.ru/');
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_FOLLOWLOCATION0);
curl_setopt($chCURLOPT_USERAGENT$ua);
curl_setopt($chCURLOPT_REFERER$ref);
curl_setopt($chCURLOPT_COOKIEJAR'./cook');
curl_setopt($chCURLOPT_COOKIEFILE'./cook');
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_POSTFIELDS$post);
$res curl_exec($ch);
curl_close($ch);
$res iconv('UTF-8','windows-1251',$res);
echo 
$res
?>



Время: 21:47