用一個(gè)示例簡(jiǎn)單講一下網(wǎng)站采集的的過(guò)程

2023-03-16    分類: 網(wǎng)站建設(shè)

隨著時(shí)代的發(fā)展,社會(huì)越來(lái)越信息快速化,所以信息更新非常的迅速,這讓很多站長(zhǎng)在更新自家的網(wǎng)站信息時(shí),顯得太浪費(fèi)時(shí)間,該怎么辦呢?那就是通過(guò)采集將別家的信息錄入到自家網(wǎng)站的數(shù)據(jù)庫(kù)中,這樣做可能對(duì)網(wǎng)站的優(yōu)化會(huì)有一定的影響,但這不是我們今天討論的話題,今天就用一個(gè)示例簡(jiǎn)單講一下網(wǎng)站采集的的過(guò)程
我們先來(lái)看下面的一個(gè)實(shí)例,這是客戶的網(wǎng)站要求采集太平洋網(wǎng)站的新聞,代碼如下圖所示(附說(shuō)明):
<?php
header("content-type:text/html;charset=utf-8");//

采集網(wǎng)址

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);//將為一個(gè)CURL會(huì)話設(shè)置選項(xiàng)。CURLOPT_URL參數(shù)是你想要的設(shè)置, 這是你想用PHP取回的URL地址,$url是這個(gè)選項(xiàng)給定的值
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);//如果有證書的https的,除去https里面的s,此句非常重要,不可刪除,否則帶有https的站點(diǎn)將無(wú)法打開
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//所獲的內(nèi)容不輸出
$data=curl_exec($ch);//將頁(yè)面的內(nèi)容賦于$data,即$data就是我們打開網(wǎng)頁(yè)后的內(nèi)容代碼
$data=iconv('gbk', 'utf-8',$data);//防止中文的亂碼,做轉(zhuǎn)碼處理
curl_close($ch);//關(guān)閉cURL 會(huì)話
咱們先打開太平洋新聞網(wǎng),然后查看網(wǎng)頁(yè)源代碼,找到要采集的信息內(nèi)容,截圖下圖:

網(wǎng)頁(yè)截圖

根據(jù)上面的代碼,我們可以寫一個(gè)正則表達(dá):
$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給定正則表達(dá)式 的匹配結(jié)果并且將它們以flag指定順序輸出到$arr中.
$array = array();//初始化一個(gè)數(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開始計(jì)算,也可以不重置,但不要弄錯(cuò)
}
/*
其中
$array[0] 是信息的圖片絕對(duì)地址的數(shù)組
$array[1] 是信息鏈接地址的數(shù)組
$array[2] 是信息標(biāo)題的數(shù)組
$array[3] 是信息列表簡(jiǎn)介的數(shù)組
$array[4] 是信息時(shí)間的數(shù)組
Print_r($array);根據(jù)輸入的數(shù)組信息就知道如何把數(shù)據(jù)添加到數(shù)據(jù)庫(kù)了,然后根據(jù)url再采集信息里面的詳細(xì)內(nèi)容,以達(dá)到采集整條信息的完整性
*/

本文名稱:用一個(gè)示例簡(jiǎn)單講一下網(wǎng)站采集的的過(guò)程
文章來(lái)源:http://www.muchs.cn/news35/244935.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站策劃、品牌網(wǎng)站設(shè)計(jì)、企業(yè)建站、定制開發(fā)、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化