CURL не парзит https сайт


alexverem
1121

Всем привет, столкнулся с проблемой, curl не может распарзить https страницу, при этом некоторые Https страницы на др сайтах ок.

Вот код, попробовал поиграть с этим параметрами

    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 ); 

curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 );

ничего не вышло. код целиком:

$USERAGENT = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)"; 

$ch = curl_init( );
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_USERAGENT, $USERAGENT );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, 0 );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 0 );

curl_setopt( $ch, CURLOPT_REFERER, $ref );
curl_setopt( $ch, CURLOPT_COOKIEJAR, "temp.txt" );
curl_setopt( $ch, CURLOPT_COOKIEFILE, "temp.txt" );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 );
curl_setopt( $ch, CURLOPT_TIMEOUT, 60 );
$get = curl_exec( $ch );
curl_close( $ch );
return $get;


skapunker

защита от ботов стоит, вот и все


LEOnidUKG

Что значит, не парсит?! Что значит некоторые ок, а некоторые нет?

Вас просто может блокировать сайт и всё.


alexverem
skapunker:
защита от ботов стоит, вот и все

А можно зашифроваться под юзера? Вроде стоит мозилла и тп в хедере


onep

Возможно, не хватает


curl_setopt($ch, CURLOPT_HEADER, false);

_SP_

Curl вообще-то парзить ничего не должен.

Если вы не получаете Curl то, что получаете своим браузером(отключив js ), то весьма вероятно что вас «спалили и забанили».


-= Serafim =-

Хорошо, что при помощи CF можно пачками в несколько кликов сеять все парсеры с более сложными алгоритмами. Задолбали грузить серваки все подряд.


tommy-gung

-= Serafim =-, кто захочет, обойдет любую защиту


-= Serafim =-
tommy-gung:
-= Serafim =-, кто захочет, обойдет любую защиту

Кому это надо? Берут другой донор и все, обходить защиты — это время и деньги.


SocFishing

Что выдаст

$url=»/;
if($curl = curl_init()) {
curl_setopt($curl,CURLOPT_URL, $url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true);
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,15);
curl_setopt($curl,CURLOPT_USERAGENT,»Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36′);
$html = curl_exec($curl);
curl_close($curl);
}
echo $html;

Скорее всего да — ограничение сайта.


onep
SocFishing:
Скорее всего да — ограничение сайта.

Да ладно ) А если так:


$url="/;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, false);
$results = curl_exec ($ch);
curl_close($ch);

$doc = new DOMDocument();
@$doc->loadHTML($results);
$xpath = new DomXPath($doc);
$elements = $xpath->query('.//tr/td');
foreach ($elements as $i=>$element) {
echo $xpath->query($element->getNodePath().'/div')->item(0)->nodeValue.'<br />';
}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *