我在这里抓取了一段脚本来抓取网站,将其放在我的服务器上并且它可以工作。唯一的问题是,如果我尝试爬行并将深度设置为 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);
?>
EDIT:
我打开了脚本的错误报告,我得到的就是这个
错误 324 (net::ERR_EMPTY_RESPONSE):未知错误。
尝试确保所有错误消息均已打开(display_errors、error_reporting)。这应该可以让您更深入地了解它崩溃的原因。
另外,请记住,爬行通常是非法的,具体取决于您要对数据执行的操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)