2009-10-26 150 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=

相關問題