Например, эта ссылка в браузере открывается "как есть". https://eda.ru/recepty/vypechka-deserty/brauni-brownie-20955
Но если поменять число в ссылке, то при открытии страницы ссылка меняется на нужную сама собой. Например, если поставить 20954:
https://eda.ru/recepty/vypechka-deserty/brauni-brownie-20954
То открывается другое блюдо, хотя изначально в ссылке написано "Брауни" из группы "Выпечка и десерты". Я этим воспользовался, когда писал скрейпер на Jsoup в Java - там я просто в цикле проходил и подсовывал в ссылку числа, все происходило само. Но сейчас пришлось переписывать его на PHP и в Simple Html Dom нет этой функции... Я так понял, перед передачей ссылки в функцию load_file
нужно достать "настоящий" URL. Как это сделать?
Например, вот этот код
$html -> load_file("https://eda.ru/recepty/vypechka-deserty/brauni-brownie-20955");
$link = $html -> find("link", 0);
$exploded = explode("/", $link->href);
$category = $exploded[4];
echo $category;
Работает. Но если поменять на 20954, то вылетает еррор пицот. А если поменять на полный URL, то работает
Есть подозрения что Simple HTML DOM
не умеет ходить по редиректам, по этому я рекомендовал бы вам обходной путь, простым curl
вы забираете данные и потом кормите их парсеру через str_get_html
, у меня всё работает, вот пример:
$url = "https://eda.ru/recepty/vypechka-deserty/brauni-brownie-2093";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
$html = str_get_html($result);
$link = $html->find("link", 0);
$exploded = explode("/", $link->href);
$category = $exploded[4];
echo $category;
Это всего лишь пример, лучше потом это всё разбить на функции для удобства использования.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Доброе время сутокУстанавливаю библиотеку ssh2 для php на ОС Freebsd
Помогите кто знает, кок можно выводить свой пункт меню в админке opencart 20 через модуль куда покопаться возможно есть какой нибудь метод для...
PS:Это решение пробовал https://gistgithub