Например, эта ссылка в браузере открывается "как есть". 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;
Это всего лишь пример, лучше потом это всё разбить на функции для удобства использования.
Доброе время сутокУстанавливаю библиотеку ssh2 для php на ОС Freebsd
Помогите кто знает, кок можно выводить свой пункт меню в админке opencart 20 через модуль куда покопаться возможно есть какой нибудь метод для...
PS:Это решение пробовал https://gistgithub