使用PHP建立基本的爬蟲程式【轉】

來源:互聯網
上載者:User

標籤:http   使用   os   檔案   資料   io   for   html   

Web Crawler, 也時也稱scrapers,即網路爬蟲,用於自動搜尋internet並從中提取 想要的內容。互連網的發展離不開它們。爬蟲是搜尋引擎的核心,通過智能演算法發現符合 你輸入的關鍵字的網頁。

Google網路爬蟲會進入你的網域名稱,然後掃描你網站的所有網頁,從中析取網頁標題,描述, 關鍵字和連結 - 然後把這些的評價返回給Google HQ,把內容存放至海量的資料庫中、

今天,我很高興告訴你怎麼做自己的爬蟲 -- 它並不對整個互連網進行搜尋,只是對指定的 一個網址擷取所有連結和資訊[譯:我稍微根據應用修改了例子,改成擷取電視節目表]。

一般地,你應該確保你在爬蟲前已經獲得授權,因為那真的是一個灰色的地帶。就如我說過 互連網離不開這些爬蟲,對於理解它們是如何工作,如何建立的是一件很重要的事。

為了讓實現更簡單,我們使用最流行的網路程式設計語言--PHP.不用怕你不懂PHP--我將告訴你 示範每一步操作,並解釋是用來做什麼的。我假定你已經瞭解HTML,並知道如何在HTML文檔中 加連結和圖片。

你需要有一個伺服器運行PHP指令碼。建議你使用AppServ。

入門

我們使用一個輔助庫Simple HTML DOM。這個庫用於便捷地遍曆HTML文檔。

首先,我們測試環境是否正常。建立一個.php檔案。並把下面代碼拷貝至伺服器www檔案夾。

<?php    include_once(‘simple_html_dom.php‘);    phpinfo();?>

 

第1行代碼<?php告訴伺服器使用PHP語言。這對伺服器如何解析是十分重要的。第二行代碼是包含 我們輔助庫Simple HTML DOM。最後phpinfo()列印出PHP當前的配置資訊,用於查看環境是否正常。要注意所有PHP語句都要以;結尾。初學者最常見的一個錯誤就是忘記寫分號,結果輸出空白頁。

接下來,我們把phpinfo替換成我們的爬蟲代碼。我們的任務是從一個電視節目預告的網站擷取節目表。代碼如下:

<?    include_once(‘simple_html_dom.php‘);    $domain = "http://epg.tvsou.com";    $target_url = "http://epg.tvsou.com/programys/TV_1/Channel_1/W4.htm";    $html = new simple_html_dom();    $html->load_file($target_url);    // 尋找channel    $channels = array();    $channels[‘CCTV-1‘] = $target_url;    foreach($html->find(‘div[class=listmenu2] a‘) as $post)    {        $channels[$post->innertext] = $domain.$post->href;    }?>

首先,我們通過$target_url指示抓取的地址,通過執行個體化simple_html_dom對象,以load_file載入指定地址內容。最後,調用find提取想要的內容。find的文法與css選擇子很類似。上面代碼 擷取節目的頻道串連,由於頻道連結是class=listmenu2的div下的連結,所以我們把它存放在數組中,並通過連結的文本(即頻道名作為索引)

原文連結:http://scriptogr.am/bee/post/build-basic-web-crawler-pull-information-website

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.