Задать вопрос

Как получить страницу из VK если система блокирует доступ?

Добрый день уважаемые программисты.
Я на своем сайте делал интеграцию видео из VK по ссылке на видео, например так:
https://vk.com/video-18797028_456245672
Далее через curl получаю ссылку на iframe вида
https://vk.com/video_ext.php?oid=-18797028&id=4562...
И уже по ней делаю опять запрос на получение данных о видео: название видео, превью и вместе с ссылками сохраняю в БД, чтобы каждый раз не загружать.
Делаю получение данных так:
$ua = array("Opera/9.80 (Windows NT 6.0; U; zh-cn) Presto/2.5.22 Version/10.50",
	         "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36 OPR/51.0.2830.55",
	          "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; HTC-P715a; en-ca) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16",
	          "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.60 Safari/537.17",
	          "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:21.0) Gecko/20130331 Firefox/21.0",
	          "Mozilla/4.0 (compatible; U; MSIE 9.0; WIndows NT 9.0; en-US");
             $brz = $ua[rand(0,count($ua))];
            $options = array(
             CURLOPT_RETURNTRANSFER => true,     // return web page
             CURLOPT_HEADER         => false,    // do not return headers
             CURLOPT_FOLLOWLOCATION => true,     // follow redirects
             CURLOPT_USERAGENT      => $brz, // who am i
             CURLOPT_AUTOREFERER    => true,     // set referer on redirect
             CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
             CURLOPT_TIMEOUT        => 120,      // timeout on response
             CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
             CURLOPT_SSL_VERIFYPEER      => FALSE,
             CURLOPT_SSL_VERIFYHOST      => FALSE,
             );
             // Запросим страницу и данные по указанной ссылке
             $ch      = curl_init($linkoEmbed);
             curl_setopt_array( $ch, $options );
             $content = curl_exec( $ch );
             $err     = curl_errno( $ch );
             $errmsg  = curl_error( $ch );
             $header  = curl_getinfo( $ch );
             curl_close( $ch );
Ну и затем получаю данные из страницы
if($nameHosting == 'VKCOM'){
                preg_match('|"md_title":"(.*)"|sUSi', $content, $md_title);
                preg_match('|"jpg":"(.*)"|sUSi', $content, $jpg);
                 if(isset($jpg[1]) && isset($md_title[1])){
                   $thumbnail = stripslashes($jpg[1]);
                   $title = $md_title[1];
                   $linkEmbed = $videoLink;
                 }else{
                   $error = 'Not Found';
                 }

             }

Все работало и очень долго. Но теперь, VK вместо страницы с видео, отдает мне заглушку.
В тексте я вижу такие данные:
заголовок: "Ошибка 429",
заголовок: "Вы запрашиваете слишком много!",
описание: 'Вернее, ваш браузер отправляет слишком много запросов, и сервер VK забил тревогу.',
https: "Эта страница была загружена по HTTP вместо безопасного HTTPS, что означает, что она не будет телепортироваться обратно.
Обратитесь в службу поддержки.",
cookies: "Вы отключили Cookies, но они вам нужны для устраните проблему.',
hash429: "По какой-то причине страница не получила все данные, и без этого она не работает.
Обратитесь в службу поддержки".

Могу ли я это обойти или как-то исправить?
  • Вопрос задан
  • 135 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы