0
我已经开始学习关于网络爬虫的知识,并借助于我在下面构建这个简单的文章的帮助。使用多线程来改进网络爬虫/蜘蛛
它建议使用多线程来改进和使网络爬虫更快。
我想知道是否有人可以帮助我了解有关多线程的更多信息,甚至可能将其应用于下面的抓取工具。
此外,如果您有任何其他建议或改进来改进此爬虫,请随时分享。
下面是代码:
error_reporting(E_ERROR);
define("CRAWL_LIMIT_PER_DOMAIN", 50);
$domains = array();
$urls = array();
function crawl($url)
{
global $domains, $urls;
$parse = parse_url($url);
$domains[ $parse['host'] ]++;
$urls[] = $url;
$content = file_get_contents($url);
if ($content === FALSE)
return;
else {
// do something with content.
}
$content = stristr($content, "body");
preg_match_all('/http:\/\/[^ "\']+/', $content, $matches);
foreach($matches[0] as $crawled_url) {
$parse = parse_url($crawled_url);
if (count($domains[ $parse['host'] ]) < CRAWL_LIMIT_PER_DOMAIN && !in_array($crawled_url, $urls)) {
sleep(1);
crawl($crawled_url);
}
}
}
感谢您在高级 - 我想感谢所有和任何帮助。
啊,好的。感谢您的解释和帮助! – IMUXIxD 2013-03-10 06:13:59