1

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

4

3 回答 3

2

首先考虑是否允许您在 eHow.com 上这样做。我想你不能按照你在这里解释的方式做到这一点。

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

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

更新:

关于有用的链接Crawler

PHP 爬虫

PHP抓取

简单的 PHP 爬虫示例

于 2012-09-20T10:03:06.693 回答
1

网络爬虫只是解析器(如 SimpleHTMLDOM)的包装器,用于通过跟踪链接自动获取页面。

你需要这样做吗?

在任何一种情况下,eHow的条款和条件都禁止使用自动方式访问该站点。

于 2012-09-20T10:00:38.663 回答
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 处的数据......

于 2012-09-20T11:06:55.320 回答