Как парсить внутренние страницы сайта?

Использую xpath для парсинга списка элементов, вернее их картинок. Но мне нужны изображения оригинального размера, а сейчас страница с которой производится парсинг картинки с ресайзом. Оригинальные картинки получить можно только перейдя по ссылке на каждый элемент списка. Подскажите, как должен выглядеть такой парсер? Сейчас так:
libxml_use_internal_errors(true);
    $url = file_get_contents("https://домен/раздел/);
    /* Новый объект DomDocument */
    $dom = new DomDocument;
    $dom->loadHTML($url);
    /* Новый объект XPath */
    $xpath = new DomXPath($dom);
    /* Селектор элементов */
    $nodes = $xpath->query("//div[@class='bxr-element-container']");
    /* Соединение с базой */
    $mysqli_connect = mysqli_connect(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE) or die("Couldn't connect to bd");
    /* Обновление и помещение значений в базу */
    foreach ($nodes as $i => $node) {
        $title = trim($xpath->query("//div[@class='bxr-element-name']/a", $node)->item($i)->nodeValue);
        $image = 'https://basis-spb.ru' . $xpath->query("//div[@class='bxr-element-image  ']/a/img/@src", $node)->item($i)->value;
        $sql = "INSERT IGNORE INTO oc_materials (`material_name`, `image`) 
                VALUES ('" . $title . "', '" . $image . "')";
        $query = mysqli_query($mysqli_connect, $sql) or die (mysql_error());
    }
  • Вопрос задан
  • 503 просмотра
Пригласить эксперта
Ответы на вопрос 1
kspitfire
@kspitfire
Webdev: PHP (Symfony, Laravel), JS (Vue.js), Go.
Оригинальные картинки получить можно только перейдя по ссылке на каждый элемент списка. Подскажите, как должен выглядеть такой парсер?


Парсер должен переходить по ссылкам к каждому элементу списка с использованием http-клиента (cURL, например) и дергать картинки оттуда, очевидно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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