1.獲取遠(yuǎn)程文件源代碼(file_get_contents或用fopen).
2.分析代碼得到自己想要的內(nèi)容(這里用正規(guī)匹配,一般是得到分頁(yè))。
3.跟根得到的內(nèi)容進(jìn)行下載入庫(kù)等操作。
在這里第二步有可能要重復(fù)的操作好幾次,比如說(shuō)要先分析一下分頁(yè)地址,在分析一下內(nèi)頁(yè)的內(nèi)容才能取得我們想要的東西。
代碼:
記的以前發(fā)部過(guò)部分的代碼今天我在這里在簡(jiǎn)單的發(fā)部一下
PHP代碼:
@$nl=file_get_contents($rs[ url //抓取遠(yuǎn)程內(nèi)容 preg_match_all( /var url = gameswf/(.*?).swf /is ,$nl,$connect);//進(jìn)行正規(guī)匹配取得自己要的內(nèi)容 mysql_query( insert ......插入數(shù)據(jù)庫(kù)部分
上面的代碼就是所有采集要用到的代碼了,當(dāng)然大家也可以用fope來(lái)作,我個(gè)人喜歡用file_get_contents。
下面在共享一下我的下載圖片flash到本地的辦法,太簡(jiǎn)單了兩行代碼
PHP代碼:
if(@copy($url,$newurl)){ echo ok } 在論壇上以前還發(fā)過(guò)一個(gè)圖片下載函數(shù)這會(huì)也放上來(lái)給大家
PHP代碼:
/*本存圖片函數(shù)*/ function getimg($url,$filename){ /*判斷圖片的url是否為空,如果為空停止函數(shù)*/ if($url== ){ return false; /*取得圖片的擴(kuò)展名,存入變量$ext中*/ $ext=strrchr($url, . /*判斷是否是合法的圖片文件*/ if($ext!= .gif $ext!= .jpg ){ return false; /*讀取圖片*/ $img=file_get_contents($url); /*打開(kāi)指定的文件*/ $fp=@fopen($filename.$ext, a /*寫入圖片到指點(diǎn)的文件*/ fwrite($fp,$img); /*關(guān)閉文件*/ fclose($fp); /*返回圖片的新文件名*/ return $filename.$ext; } 共享一下個(gè)人的采集心德:
1.不采那些作防盜鏈了的站,其實(shí)可以作假來(lái)路但是這樣的站采集成本太高
2.采集盡量快的站,最好在本地進(jìn)行采集
3.采集時(shí)有很多時(shí)候可以先把一部分?jǐn)?shù)據(jù)存入數(shù)據(jù)庫(kù),等以后進(jìn)行下一步的處理。
4.采集的時(shí)候一定要作好出錯(cuò)處理,我一般都是如果采集三次沒(méi)有成功就跳過(guò)。以前經(jīng)常就因?yàn)橐粭l內(nèi)容不能采就卡在那里一直的采。
5.入庫(kù)前一定要作好判斷,檢查內(nèi)容的合法,過(guò)濾不必要的字符串。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,更多相關(guān)內(nèi)容請(qǐng)關(guān)注PHP !
相關(guān)推薦:
關(guān)于PHP字典樹(shù)的定義與實(shí)現(xiàn)方法
以上就是關(guān)于PHP程序采集的代碼的詳細(xì)內(nèi)容,PHP教程
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選