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

Форум АНТИЧАТ (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

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


Время: 05:57