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

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ì)案例
天峻县| 东阳市| 滕州市| 嘉荫县| 安新县| 深州市| 四会市| 澳门| 石林| 土默特右旗| 城步| 宜丰县| 龙州县| 芒康县| 浦北县| 新津县| 贺州市| 余干县| 漳平市| 千阳县| 巩义市| 山丹县| 县级市| 宜丰县| 赫章县| 卓资县| 重庆市| 黔东| 乐安县| 乌拉特后旗| 庆云县| 玛纳斯县| 连州市| 筠连县| 望谟县| 廊坊市| 内丘县| 肃宁县| 栾城县| 资阳市| 神农架林区|