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