隨著時代的發(fā)展,社會越來越信息快速化,所以信息更新非常的迅速,這讓很多站長在更新自家的網(wǎng)站信息時,顯得太浪費時間,該怎么辦呢?那就是通過采集將別家的信息錄入到自家網(wǎng)站的數(shù)據(jù)庫中,這樣做可能對網(wǎng)站的優(yōu)化會有一定的影響,但這不是我們今天討論的話題,今天就用一個示例簡單講一下網(wǎng)站采集的的過程
我們先來看下面的一個實例,這是客戶的網(wǎng)站要求采集太平洋網(wǎng)站的新聞,代碼如下圖所示(附說明):
<?php
header("content-type:text/html;charset=utf-8");//
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);//將為一個CURL會話設(shè)置選項。CURLOPT_URL參數(shù)是你想要的設(shè)置, 這是你想用PHP取回的URL地址,$url是這個選項給定的值
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);//如果有證書的https的,除去https里面的s,此句非常重要,不可刪除,否則帶有https的站點將無法打開
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//所獲的內(nèi)容不輸出
$data=curl_exec($ch);//將頁面的內(nèi)容賦于$data,即$data就是我們打開網(wǎng)頁后的內(nèi)容代碼
$data=iconv('gbk', 'utf-8',$data);//防止中文的亂碼,做轉(zhuǎn)碼處理
curl_close($ch);//關(guān)閉cURL 會話
咱們先打開太平洋新聞網(wǎng),然后查看網(wǎng)頁源代碼,找到要采集的信息內(nèi)容,截圖下圖:
根據(jù)上面的代碼,我們可以寫一個正則表達:
$path = '#<i class="lpic"><a href="(.*?)" target="_blank"><img width="200" height="150" src="//www1.pconline.com.cn/images/blank.gif" (.*?)="(.*?)" alt=""> </a>
</i>
<dl><dt><a href="(.*?)" target="_blank">(.*?)</a></dt><dd><span class="des">(.*?)</span><p class="info"><span class="channel"><a href="(.*?)" target="_blank">(.*?)</a></span><span class="date">|(.*?)</span></p></dd></dl>#is'; preg_match_all($path,$data,$arr);//正則匹配,其中$path是匹配的規(guī)則,$data是想要匹配的內(nèi)容,$datapath給定正則表達式 的匹配結(jié)果并且將它們以flag指定順序輸出到$arr中.
$array = array();//初始化一個數(shù)組
foreach($arr as $k=>$v){
if($k==3||$k==4||$k==5||$k==6||$k==9){ //想要的參數(shù)有哪些
$array[$k] = $v;}}
if(!empty($array)){
$array = array_values($array);//重置數(shù)組key,讓數(shù)組的key從0開始計算,也可以不重置,但不要弄錯
}
/*
其中
$array[0] 是信息的圖片絕對地址的數(shù)組
$array[1] 是信息鏈接地址的數(shù)組
$array[2] 是信息標題的數(shù)組
$array[3] 是信息列表簡介的數(shù)組
$array[4] 是信息時間的數(shù)組
Print_r($array);根據(jù)輸入的數(shù)組信息就知道如何把數(shù)據(jù)添加到數(shù)據(jù)庫了,然后根據(jù)url再采集信息里面的詳細內(nèi)容,以達到采集整條信息的完整性
*/
本文名稱:用一個示例簡單講一下網(wǎng)站采集的的過程
文章來源:http://jinyejixie.com/news35/244935.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、網(wǎng)站策劃、品牌網(wǎng)站設(shè)計、企業(yè)建站、定制開發(fā)、網(wǎng)站排名
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)