PHP 采集心得技巧
更新時間:2009年05月15日 23:45:54 作者:
今天給大家共享一下我的采集代碼! 思路: 采集程序的思路很簡單大體可以分為以下幾個步驟
1.獲取遠程文件源代碼(file_get_contents或用fopen).
2.分析代碼得到自己想要的內(nèi)容(這里用正規(guī)匹配,一般是得到分頁)。
3.跟根得到的內(nèi)容進行下載入庫等操作。
在這里第二步有可能要重復(fù)的操作好幾次,比如說要先分析一下分頁地址,在分析一下內(nèi)頁的內(nèi)容才能取得我們想要的東西。
代碼:
記的以前發(fā)部過部分的代碼今天我在這里在簡單的發(fā)部一下
復(fù)制PHP內(nèi)容到剪貼板
PHP代碼:
@$nl=file_get_contents($rs['url']);//抓取遠程內(nèi)容
preg_match_all("/var url = "gameswf/(.*?).swf";/is",$nl,$connect);//進行正規(guī)匹配取得自己要的內(nèi)容
mysql_query("insert ......插入數(shù)據(jù)庫部分");
上面的代碼就是所有采集要用到的代碼了,當(dāng)然大家也可以用fope來作,我個人喜歡用file_get_contents。
下面在共享一下我的下載圖片flash到本地的辦法,太簡單了兩行代碼
PHP代碼:
if(@copy($url,$newurl)){
echo 'ok';
}
在論壇上以前還發(fā)過一個圖片下載函數(shù)這會也放上來給大家
PHP代碼:
/*本存圖片函數(shù)*/
function getimg($url,$filename){
/*判斷圖片的url是否為空,如果為空停止函數(shù)*/
if($url==""){
return false;
}
/*取得圖片的擴展名,存入變量$ext中*/
$ext=strrchr($url,".");
/*判斷是否是合法的圖片文件*/
if($ext!=".gif" && $ext!=".jpg"){
return false;
}
/*讀取圖片*/
$img=file_get_contents($url);
/*打開指定的文件*/
$fp=@fopen($filename.$ext,"a");
/*寫入圖片到指點的文件*/
fwrite($fp,$img);
/*關(guān)閉文件*/
fclose($fp);
/*返回圖片的新文件名*/
return $filename.$ext;
}
共享一下個人的采集心德:
1.不采那些作防盜鏈了的站,其實可以作假來路但是這樣的站采集成本太高
2.采集盡量快的站,最好在本地進行采集
3.采集時有很多時候可以先把一部分?jǐn)?shù)據(jù)存入數(shù)據(jù)庫,等以后進行下一步的處理。
4.采集的時候一定要作好出錯處理,我一般都是如果采集三次沒有成功就跳過。以前經(jīng)常就因為一條內(nèi)容不能采就卡在那里一直的采。
5.入庫前一定要作好判斷,檢查內(nèi)容的合法,過濾不必要的字符串。
2.分析代碼得到自己想要的內(nèi)容(這里用正規(guī)匹配,一般是得到分頁)。
3.跟根得到的內(nèi)容進行下載入庫等操作。
在這里第二步有可能要重復(fù)的操作好幾次,比如說要先分析一下分頁地址,在分析一下內(nèi)頁的內(nèi)容才能取得我們想要的東西。
代碼:
記的以前發(fā)部過部分的代碼今天我在這里在簡單的發(fā)部一下
復(fù)制PHP內(nèi)容到剪貼板
PHP代碼:
@$nl=file_get_contents($rs['url']);//抓取遠程內(nèi)容
preg_match_all("/var url = "gameswf/(.*?).swf";/is",$nl,$connect);//進行正規(guī)匹配取得自己要的內(nèi)容
mysql_query("insert ......插入數(shù)據(jù)庫部分");
上面的代碼就是所有采集要用到的代碼了,當(dāng)然大家也可以用fope來作,我個人喜歡用file_get_contents。
下面在共享一下我的下載圖片flash到本地的辦法,太簡單了兩行代碼
PHP代碼:
復(fù)制代碼 代碼如下:
if(@copy($url,$newurl)){
echo 'ok';
}
在論壇上以前還發(fā)過一個圖片下載函數(shù)這會也放上來給大家
PHP代碼:
復(fù)制代碼 代碼如下:
/*本存圖片函數(shù)*/
function getimg($url,$filename){
/*判斷圖片的url是否為空,如果為空停止函數(shù)*/
if($url==""){
return false;
}
/*取得圖片的擴展名,存入變量$ext中*/
$ext=strrchr($url,".");
/*判斷是否是合法的圖片文件*/
if($ext!=".gif" && $ext!=".jpg"){
return false;
}
/*讀取圖片*/
$img=file_get_contents($url);
/*打開指定的文件*/
$fp=@fopen($filename.$ext,"a");
/*寫入圖片到指點的文件*/
fwrite($fp,$img);
/*關(guān)閉文件*/
fclose($fp);
/*返回圖片的新文件名*/
return $filename.$ext;
}
共享一下個人的采集心德:
1.不采那些作防盜鏈了的站,其實可以作假來路但是這樣的站采集成本太高
2.采集盡量快的站,最好在本地進行采集
3.采集時有很多時候可以先把一部分?jǐn)?shù)據(jù)存入數(shù)據(jù)庫,等以后進行下一步的處理。
4.采集的時候一定要作好出錯處理,我一般都是如果采集三次沒有成功就跳過。以前經(jīng)常就因為一條內(nèi)容不能采就卡在那里一直的采。
5.入庫前一定要作好判斷,檢查內(nèi)容的合法,過濾不必要的字符串。
相關(guān)文章
php網(wǎng)站被掛木馬后的修復(fù)方法總結(jié)
這篇文章主要介紹了php網(wǎng)站被掛木馬后的修復(fù)方法,總結(jié)分析了Linux與Windows系統(tǒng)上木馬的查殺方法,并給出了一個完整的木馬查找工具實例,需要的朋友可以參考下2014-11-11
php實現(xiàn)多站點共用session實現(xiàn)單點登錄的方法詳解
這篇文章主要介紹了php實現(xiàn)多站點共用session實現(xiàn)單點登錄的方法,結(jié)合實例形式詳細分析了php多站點共用seeion實現(xiàn)單點登錄相關(guān)原理及操作注意事項,需要的朋友可以參考下2019-09-09
php構(gòu)造方法中析構(gòu)方法在繼承中的表現(xiàn)
這篇文章主要為大家詳細介紹了php構(gòu)造方法中析構(gòu)方法在繼承中的表現(xiàn),感興趣的小伙伴們可以參考一下2016-04-04

