国产精品一区二区三区……-大杳蕉伊人欧美一本遒在饯-日本不卡一区免费在线观看-国产亚洲欧美中文字幕

400-800-9385
網(wǎng)站建設(shè)資訊詳細(xì)

PHP使用curl抓取新聞數(shù)據(jù)

發(fā)表日期:2020-04-11 09:02:42   作者來(lái)源:李彬   瀏覽:3226   標(biāo)簽:網(wǎng)站制作    
在一次做網(wǎng)站的時(shí)候 ,需要抓取一些其他網(wǎng)站的新聞 ,在這里介紹一種使用curl通過(guò)鏈接的方式去獲取這個(gè)頁(yè)面的所有內(nèi)容,然后再通過(guò)正則匹配獲取需要的內(nèi)容。不是所有網(wǎng)站都能抓取需要有頁(yè)面規(guī)律才能去抓取如下圖
 

PHP抓取數(shù)據(jù)


這種有規(guī)律的新聞列表 ,不過(guò)新聞的詳情內(nèi)容需要再次單獨(dú)的去抓取,
代碼:
   $url = http://xxxx;  // https://xxxx要抓取的鏈接 新聞列表
 
        $url=str_replace('&','&',$url);
 
        header("content-type:text/html;charset=utf-8");
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);//除去https里面的s
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//關(guān)閉直接輸出
   $ html_data =curl_exec($ch);
        curl_close($ch);//關(guān)閉會(huì)話
 這里要確認(rèn)是否抓取到了頁(yè)面的內(nèi)容 可以打印出來(lái)看一下
 如果沒(méi)有抓取到 要注意一下 頁(yè)面的編碼格式 使用iconv()轉(zhuǎn)換一下內(nèi)容編碼
   // $html_data=iconv('gbk', 'utf-8',$html_data);

       $regular='#<h1id="activity-name">(.*?)</h1>(.*?)<spanid="post-date">(.*?)<span>(.*?)</span>(.*?)<div class="page-content">(.*?)<div class="text">(.*?)</div>#is';
        preg_match_all($regular,$html_data,$connect);//進(jìn)行正規(guī)匹配取得自己要的內(nèi)容
        //循環(huán)取出需要的內(nèi)容數(shù)組
        foreach($connect as $k =>$var){
            if($k==2 || $k==3|| $k==5 || $k==7){
                $b= array_merge(array_filter($connect[$k]));
                $array[]=$b;
            }
        }
得到數(shù)據(jù)數(shù)組后 就可以根據(jù)需求去添加數(shù)據(jù)了
內(nèi)容詳情需要抓取就獲取到新聞內(nèi)容頁(yè)的鏈接 同樣使用curl去獲取信息
 
要注意的就是正則表達(dá)式里面的html需要跟頁(yè)面的格式一樣, 你可以去原網(wǎng)站點(diǎn)右鍵查看源代碼,查看格式, 把要抓取的html復(fù)制下來(lái) ,如果還是有不能抓取的內(nèi)容可能就是格式不正確 有可能有的地方是少空格或者多空格, 這個(gè)時(shí)候直接在標(biāo)簽之間(.*?)。也可以 一點(diǎn)一點(diǎn)的匹配 看具體是哪個(gè)部分沒(méi)有匹配到。
 
 方維網(wǎng)絡(luò)為客戶提供網(wǎng)站開發(fā)定制服務(wù),網(wǎng)站制作居于LINUX+PHP+MYSQL框架,歡迎客戶咨詢我們建站熱線400-800-9385
如沒(méi)特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來(lái)自http://pdcharm.com/news/5604.html
相關(guān)網(wǎng)站設(shè)計(jì)案例
图木舒克市| 高雄市| 凉山| 都昌县| 临高县| 西乌珠穆沁旗| 禹城市| 丘北县| 崇文区| 茂名市| 丰顺县| 赤壁市| 平邑县| 商城县| 灌云县| 虹口区| 鄂托克前旗| 方正县| 承德市| 潼关县| 灵川县| 铁岭市| 色达县| 象州县| 东阳市| 道真| 当阳市| 冀州市| 张家港市| 巴楚县| 奈曼旗| 大田县| 德保县| 潼关县| 北川| 夏河县| 漾濞| 凌海市| 阿拉善右旗| 巴南区| 清新县|