LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

php抓取網(wǎng)頁(yè)數(shù)據(jù)的技術(shù)要點(diǎn)

admin
2013年2月25日 23:46 本文熱度 5251




php中一般都是去抓取網(wǎng)頁(yè)數(shù)據(jù)?如想把http://mp3.baidu.com/ 歌曲500TOP把抓下來(lái),如何實(shí)現(xiàn)?


該文章在 2013/2/25 23:46:42 編輯過(guò)

全部評(píng)論1

admin
2013年2月25日 23:52

問(wèn)題中提到需要用PHP實(shí)現(xiàn),個(gè)人總結(jié)整理了一下,有以下幾種常用的用php抓取網(wǎng)頁(yè)中的內(nèi)容的方法,供您參考。

1.使用file_get_contents

  
  1. <?php      
  2. $url = "http://www.34ways.com";   
  3. $contents = file_get_contents($url);   
  4. //如果出現(xiàn)中文亂碼使用下面代碼   
  5. //$getcontent = iconv("gb2312", "utf-8",$contents);    
  6. echo $contents;   
  7. ?>

2.使用curl

  
  1. <?php      
  2. $url = "http://www.34ways.com";   
  3. $ch = curl_init();   
  4. $timeout = 5;   
  5. curl_setopt($ch, CURLOPT_URL, $url);   
  6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   
  7. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);   
  8. //在需要用戶檢測(cè)的網(wǎng)頁(yè)里需要增加下面兩行   
  9. //curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);   
  10. //curl_setopt($ch, CURLOPT_USERPWD, US_NAME.":".US_PWD);   
  11. $contents = curl_exec($ch);   
  12. curl_close($ch);   
  13. echo $contents;   
  14. ?>

3.使用fopen->fread->fclose

  
  1. <?php      
  2. $handle = fopen ("http://www.34ways.com", "rb");   
  3. $contents = "";   
  4. do {   
  5.    $data = fread($handle, 1024);   
  6.    if (strlen($data) == 0) {   
  7.    break;   
  8.    }   
  9.    $contents .= $data;   
  10. } while(true);   
  11. fclose ($handle);   
  12. echo $contents;   
  13. ?>

最后提醒幾點(diǎn):
1.使用file_get_contents和fopen必須空間開啟allow_url_fopen。
方法:

編輯php.ini,設(shè)置allow_url_fopen =
On,allow_url_fopen關(guān)閉時(shí)fopen和file_get_contents都不能打開遠(yuǎn)程文件。

2.使用curl必須空間開啟curl。
方法:

windows下修改php.ini,將extension=php_curl.dll前面的分號(hào)去掉,而且需要拷貝ssleay32.dll和libeay32.dll到C:\WINDOWS\system32下;Linux下要安裝curl擴(kuò)展。

 
評(píng)論 (1)鏈接 • 2012-07-10
  • 多謝您的解答~ – 張鵬飛 2012-07-10

先f(wàn)ile_get_contents("http://mp3.baidu.com/"),取一個(gè)html的結(jié)果 然后從html 利用正則找規(guī)律 來(lái)取

頁(yè)面只給了ID, 由flash查找的.如果想知道怎么查找的,可以反編譯SWF.
有其它的音樂(lè)網(wǎng)站列出了baidu的排行榜,也許從那里抓更容易.

只是舉了個(gè)例子,抓去網(wǎng)頁(yè)數(shù)據(jù)無(wú)非就兩步:1、抓取;2:分析
抓取分幾種情況:1、普通字符串,就是普通網(wǎng)頁(yè)源碼,用file_get_contents或curl抓取,2、有序數(shù)據(jù)如xml,可以用simplexml_load_file抓取
分析:如果是第二種情況,就按照xml數(shù)據(jù)來(lái)遍歷處理好了。 如果是第一種情況,用preg_match來(lái)匹配目標(biāo)數(shù)據(jù)

  • 只說(shuō)下思路,這樣的代碼網(wǎng)上太多,就不多說(shuō)了。
    PHP實(shí)現(xiàn)的話,file_get_contents網(wǎng)頁(yè)內(nèi)容下來(lái),然后用正則進(jìn)行分析得到mp3文件地址到一個(gè)文件里面,然后用迅雷批量下載。
    PHP下載mp3 - -| 你懂的

    <?php
    /*
    * 如下: 方法有點(diǎn)笨
    * 抓取網(wǎng)頁(yè)內(nèi)容用 PHP 的正則
    * 用JS每隔5分鐘刷新當(dāng)前頁(yè)面---即重新獲取網(wǎng)頁(yè)內(nèi)容
    *
    * 注: $mode中--<title></title>-更改為所需內(nèi)容(如 $mode = "#<a(.)</a>#";>獲取所有鏈接) * * window.location.href="http://localhost/baidu/refesh.php";中的http://localhost/baidu/refesh.php * 更改為自己的URL----作用:即刷新當(dāng)前頁(yè)面 * * setInterval("ref()",300000);是每隔300000毫秒(即 5 * 60 *1000 毫秒即5分鐘)執(zhí)行一次函數(shù) ref() * * print_r($arr);輸出獲得的所有內(nèi)容 $arr是一個(gè)數(shù)組 可根據(jù)所需輸出一部分(如 echo $arr[1][0];) * 若要獲得所有內(nèi)容 可去掉 * $mode = "#<title>(.)</title>#";
    if(preg_match_all($mode,$content,$arr)){
    print_r($arr);
    echo "<br/>";
    echo $arr[1][0];
    }
    再加上 echo $content;
    */
    $url = "http://www.baidu.com"; //目標(biāo)站
    $fp = @fopen($url, "r") or die("超時(shí)");

    $content=file_get_contents($url);
    $mode = "#<title>(.*)</title>#";
    if(preg_match_all($mode,$content,$arr)){
    //print_r($arr);
    echo "<br/>";
    echo $arr[0];
    }
    ?>
    <script language="JavaScript" type="text/javascript">
    <--
    function ref(){
    window.location.href="http://localhost/baidu/refesh.php";
    }
    setInterval("ref()",300000);
    //-->
    </script>

    詳細(xì)匯總 http://blog.163.com/kong_qing_feng/blog/static/186228032009418144099/

     
    關(guān)鍵字查詢
    相關(guān)文章
    正在查詢...
    點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
    點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
    點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
    點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
    Copyright 2010-2025 ClickSun All Rights Reserved

    黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
    亚洲国产午夜精品不卡 | 色偷偷久久一区二区三区 | 香蕉精品亚洲二区在线观看 | 亚洲国产青草衣衣一二三区 | 在线a免费播放a视频 | 色综合久久丁香婷婷 |