抓住网站数据(内容)的最佳方式?

时间:2009-10-26 09:27:18

标签: content-management

我需要抓住一些网站数据(内容) 这些网站提供我需要抓取的列表并根据内容过滤它们

任何软件都能做到吗? php脚本? 如果没有,我在哪里可以开始编程这个功能?

3 个答案:

答案 0 :(得分:1)

使用file_get_contents(),它返回整个文件的字符串,然后解析字符串以提取内容。

其他选项是cURL或wget,它将获取整个文件,然后使用AWK和SED或PERL处理它们

取决于您需要刮取目标网页的频率。如果偶尔使用PHP,但是你需要从浏览器触发它并在PHP中记住regexp可能非常耗时。

如果你想定期抓取文件,那么可以从cron运行带有cURL / wget + sed和awk的BASH脚本而无需干预,并且在后台运行。

答案 1 :(得分:1)

如果它的php ..可能会帮助你.. http://www.thefutureoftheweb.com/blog/web-scrape-with-php-tutorial

// get the HTML
$html = file_get_contents("http://www.thefutureoftheweb.com/blog/");


preg_match_all(
    '/<li>.*?<h1><a href="(.*?)">(.*?)<\/a><\/h1>.*?<span class="date">(.*?)<\/span>.*?<div class="section">(.*?)<\/div>.*?<\/li>/s',
    $html,
    $posts, // will contain the blog posts
    PREG_SET_ORDER // formats data into an array of posts
);

foreach ($posts as $post) {
    $link = $post[1];
    $title = $post[2];
    $date = $post[3];
    $content = $post[4];

    // do something with data
}

当然,您需要根据您的要求自定义正则表达式。

您还可以找到其他示例.. http://www.google.com/search?source=ig&hl=en&rlz=&=&q=php+web+scraper&aq=f&oq=&aqi=

答案 2 :(得分:0)

没有神奇的东西。因为每个页面内容都不同 当你谈到PHP时,我会用这种语言给你一些线索。

您可以使用curl获取网页 获取内容后,您可以使用regular expressions解析它。

根据您的要求,您必须自己开发应用程序。