Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 23.07.2021 07:35:04

Парсинг сайтов

Добрый день.
Пытаюсь написать парсер, который берет данные со стороннего сайта.

Вот мой код:

    public function index()
   {
       $context = stream_context_create(
            array(
                "http" => array(
                    "max_redirects" => 101,
                    "header" => "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36"
                )
            )
        );

        $link = '[url]https://url.com[/url]';
        // Get html remote text.
        $html = file_get_contents($link, false, $context);
       dd($html);
   }

Код рабочий. Но на одном из сайтов постоянно выдаёт ошибку (в примере, в целях безопасности, указан не реальный url):

ErrorException (E_WARNING)
file_get_contents(https://url.com): failed to open stream: Redirection limit reached, aborting

Также пробовал  вариант с follow_location

    public function index()
   {
       $context = stream_context_create(
            array(
                "http" => array(
                    "max_redirects" => 101,
                    "header" => "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36",
                    'follow_location' => false
                )
            )
        );

        $link = '[url]https://url.com[/url]';
        // Get html remote text.
        $html = file_get_contents($link, false, $context);
       dd($html);
   }

Выдаёт следующее сообщение:

"""

<HTML><HEAD><TITLE>Loading</TITLE></HEAD><BODY bgcolor="#ffffff"><H3 style="color: #ffffff">Loading</H3></BODY></HTML>
"""

Через браузер страница открывается. Пробовал запускать как локально, так и с сервера. Результат один и тот же.
Подозреваю, что стоит какая-то защита на сайте, т.к. другие сайты парсятся нормально.
Вся надежда на вас, подскажите как решить данную проблему. Заранее спасибо.

Изменено Vladimir_user (23.07.2021 07:39:51)

Не в сети

#2 26.07.2021 21:16:01

Re: Парсинг сайтов

Без адреса сайта тут сказать ничего нельзя. Могу посоветовать скачать curl (если на Windows) и запросить страницу через него. Если страница будет нормальной, значит проблема у вас, если через curl страницы тоже нет, тогда дело в сайте.

Не в сети

Подвал раздела