Я пытаюсь использовать PHPCrawl cuab в Laravel 5.4 и включил его через composer, используя этот пакет:
https://packagist.org/packages/mmerian/phpcrawl
Я попытался запустить этот пример кода:
class MyCrawler extends PHPCrawler
{
function handleDocumentInfo($DocInfo)
{
if (PHP_SAPI == "cli"){
$lb = "\n";
} else {
$lb = "<br />";
}
echo "Page requested: ".$DocInfo->url." (".$DocInfo->http_status_code.")".$lb;
echo "Referer-page: ".$DocInfo->referer_url.$lb;
if ($DocInfo->received == true) {
echo "Content received: ".$DocInfo->bytes_received." bytes".$lb;
}
else {
echo "Content not received".$lb;
}
echo $lb;
flush();
}
}
$crawler = new MyCrawler();
$crawler->setURL("www.php.net");
$crawler->addContentTypeReceiveRule("#text/html#");
$crawler->addURLFilterRule("#\.(jpg|jpeg|gif|png)$# i");
$crawler->enableCookieHandling(true);
$crawler->setTrafficLimit(1000 * 1024);
$crawler->go();
$report = $crawler->getProcessReport();
if (PHP_SAPI == "cli") {
$lb = "\n";
} else {
$lb = "<br />";
}
echo "Summary:".$lb;
echo "Links followed: ".$report->links_followed.$lb;
echo "Documents received: ".$report->files_received.$lb;
echo "Bytes received: ".$report->bytes_received." bytes".$lb;
echo "Process runtime: ".$report->process_runtime." sec".$lb;
Но он выдает несколько ошибок, как это:
Класс ‘App \ Http \ Controllers \ PHPCrawler’ не найден
Как бы вы сослались на правильное пространство имен, чтобы я мог использовать скрипт в Laravel?
Вы должны добавить файлы через карту классов в ваш файл composer.json. Вы можете увидеть пример того, как карта классов выглядит на их страница github, который на момент написания выглядит так:
"autoload": {
"classmap": [
"libs/Utils/PHPCrawlerUtils.class.php",
"libs"]
}
Вам придется префикс файлов с vendor/mmerian/phpcrawl
или какой-либо путь к папке libs.
Других решений пока нет …