分析器或网络爬虫

时间:2012-09-20 09:57:08

标签: php html-parsing web-scraping web-crawler

我想从ehow.com提取有关要存储在我的数据库中的不同主题的数据。问题是我需要筛选多个网页才能从这个网站获取信息。为了浏览大量的网页并提取我需要的数据,我会使用像SimpleHTMLDOM这样的刮刀还是需要使用网络爬虫?

3 个答案:

答案 0 :(得分:2)

首先考虑一下您是否可以在eHow.com上这样做。我想你不能按照你在这里解释的那样做。

无论如何,关于你的问题:

Crawler从一个页面移动到另一个页面和/或网站移动到网站,Parser将解析页面内容并以可重用的方式存储它们以满足您的需求。为此,您需要同时使用它们,或者需要手动提供解析器的URL。

<强>更新

有关Crawler的有用链接:

PHP Crawler

PHPCrawl

Simple PHP crawler example

答案 1 :(得分:1)

网络抓取工具只是解析器的一个包装器(如SimpleHTMLDOM),用于通过以下链接自动获取页面。

你需要这样做吗?

在任何一种情况下,eHow的the terms and conditions都禁止使用自动化方式访问该网站。

答案 2 :(得分:0)

您可以相对轻松地构建自己的抓取工具......

在PHP中你可以使用例如......

<?php

$lines = file('http://www.example.com/');

// i think here you either implode or explode the $lines by "" cannot remember which

// Loop through our array, show HTML source as HTML source; and line numbers too.
foreach ($lines as $line_num => $line) {
    echo "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}

preg_match_all("/<h2>(.*)<\/h2>/i",$lines,$array_of_contents);

$page_title = $array_of_contents[0][1];

if($page_title == "Technology"){

// run a function here to do something with links found on this page...

}

?>

最好使用CURL而不是file(),尽管您可能需要在PHP.ini中启用它。我以前在不同的网站上做过这个,但效果很好。当您感兴趣的链接被找到时,将它们添加到数据库并继续爬行,直到找到所需的所有链接,然后使用另一个类等来处理/抓取收集的URL上的数据......