Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > Парс удаленной страницы |
Автор: MrDmitry 15.10.2020, 18:33 | ||||
Здравствуйте, пытаюсь пропарсить ссылку https://shop.autoeuro.ru/main/search?maker=MANN-FILTER&code=W811/80&crosses=1 при помощи simplehtmldom
получаю
|
Автор: bars80080 15.10.2020, 20:13 |
нет такой функции file_get_html: https://www.php.net/manual-lookup.php?pattern=file_get_html&scope=quickref Добавлено через 51 секунду намёк на то, что она фиг знает, что делает, потому ответа ждать можно вечно |
Автор: The_Aleksey 15.10.2020, 21:20 |
file_get_html - это часть библиотеки PHP Simple HTML DOM (simplehtmldom.sourceforge.io/manual.htm) рискну предположить, что там пробел лишний перед https в адресе, поэтому невозможно получить ресурс и объект пустой |
Автор: MrDmitry 16.10.2020, 15:33 | ||
К сожалению пробела нет. Я допустил ошибку когда писал на форуме, строка формируется. сама. Вот точный код если быть точным.
Откуда берётся $list тут не важно, главное что получается в итоге https://shop.autoeuro.ru/main/search?maker=MANN-FILTER&code=W811/80&crosses=1 |
Автор: ksnk 16.10.2020, 17:25 |
Не открывается, потому что ответная сторона не хочет отдавать свой контент. Если внимательно посмотреть на то, что выдает страница в броузере, то она сначала устанавливает какие-то куки, потом переадресуется на немного другой адрес, и там уже выдает результат поиска. Вероятнее всего, они проверяют предварительно, что посылаемые заголовки похожи на броузер, вероятнее всего, они проверяют устанавленные куки, вероятнее всего они еще что-нибудь проверяют... Можно попытаться лазить на сайт с помощью curl, нужно изобразить более менее адекватные заголовки запроса,и ,если их контроль не доходит до контроля запуска javascript на клиенте, есть вероятность что-то получить. |
Автор: The_Aleksey 20.10.2020, 21:09 | ||
Да, на этой странице действительно 302-й редирект на страницу с другими GET-параметрами, в качестве предложения, можно вот так
Здесь, вначале мы получим 302, потом, используя CURLOPT_FOLLOWLOCATION перейдём по новому адресу, и в итоге в $data у нас будет строка с содержимым сайта, и вот эту строку потом можно будет засунуть в DOM парсер и искать в ней |