我想从ehow.com提取有关要存储在我的数据库中的不同主题的数据。问题是我需要筛选多个网页才能从这个网站获取信息。为了浏览大量的网页并提取我需要的数据,我会使用像SimpleHTMLDOM这样的刮刀还是需要使用网络爬虫?
答案 0 :(得分:2)
首先考虑一下您是否可以在eHow.com上这样做。我想你不能按照你在这里解释的那样做。
无论如何,关于你的问题:
Crawler
从一个页面移动到另一个页面和/或网站移动到网站,Parser
将解析页面内容并以可重用的方式存储它们以满足您的需求。为此,您需要同时使用它们,或者需要手动提供解析器的URL。
<强>更新强>
有关Crawler
的有用链接:
答案 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上的数据......