Я беру кусок скрипта здесь, чтобы просканировать сайт, поставить его на свой сервер, и он работает. Единственная проблема заключается в том, что если я попытаюсь выполнить обход глубины, то что-то выше 4, это не сработает. Мне интересно, не связано ли это с серверами нехватки ресурсов или самого кода.
<?php error_reporting(E_ALL); function crawl_page($url, $depth) { static $seen = array(); if (isset($seen[$url]) || $depth === 0) { return; } $seen[$url] = true; $dom = new DOMDocument('1.0'); @$dom->loadHTMLFile($url); $anchors = $dom->getElementsByTagName('a'); foreach ($anchors as $element) { $href = $element->getAttribute('href'); if (0 !== strpos($href, 'http')) { $href = rtrim($url, '/') . '/' . ltrim($href, '/'); } crawl_page($href, $depth - 1); } echo "URL:",$url,PHP_EOL; echo "<br/>"; } crawl_page("http://www.mangastream.com/", 2); ?>
РЕДАКТИРОВАТЬ:
Я включил отчет об ошибках для скрипта, и все, что я получаю, это
Ошибка 324 (net :: ERR_EMPTY_RESPONSE): Неизвестная ошибка.
Попробуйте сделать все сообщения об ошибках (display_errors, error_reporting). Это должно дать вам больше информации о том, почему он рушится.
Кроме того, имейте в виду, что обход часто является незаконным в зависимости от того, что вы собираетесь делать с данными.