2009-10-26 151 views
0

我需要抓住一些网站的数据(内容) 这些网站提供我需要抓住的,并根据内容抓取网站数据(内容)的最佳方式是什么?

任何软件就可以做到这一点它们进行过滤列表? PHP脚本? 如果不是,我可以从哪里开始编程此功能?

+0

BTW,目标网站可能需要somesort数据录入,查看其内容,例如我们选择从下拉列表中的城市。 – 2009-10-26 09:30:23

+0

和NO API来抓取这些网站数据 – 2009-10-26 09:30:53

回答

0

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

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

根据你想要做什么,你必须自己开发应用程序。

1

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

其他选项将卷曲或wget的,这将让整个文件,然后用诸如AWK和SED或PERL

处理这些

要看你需要多久刮目标页面。如果偶尔使用PHP,但您需要从浏览器中触发它,并记住PHP中的regexp可能非常耗时。

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

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=

相关问题