亚洲精品aaa,日本免费精品视频,车里激情吃奶头,儿子生来就是c的

服務(wù)熱線 400-660-8066

深圳網(wǎng)站建設(shè)
首頁 站內(nèi)資訊

深圳網(wǎng)站建設(shè)

站內(nèi)資訊
深圳網(wǎng)站建設(shè) / 站內(nèi)資訊 / 行業(yè)資訊 / 正文

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

來源: All文章
發(fā)布時(shí)間:2023-07-25 09:32:06

  在一次做網(wǎng)站的時(shí)候,需要抓取一些其他網(wǎng)站的新聞,在這里介紹一種使用curl通過鏈接的方式去獲取這個(gè)頁面的所有內(nèi)容,然后再通過正則匹配獲取需要的內(nèi)容。不是所有網(wǎng)站都能抓取需要有頁面規(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_RETURANSFER,1);//關(guān)閉直接輸出

  $html_data=curl_exec($ch);

  curl_close($ch);//關(guān)閉會(huì)話

  這里要確認(rèn)是否抓取到了頁面的內(nèi)容可以打印出來看一下

  如果沒有抓取到要注意一下頁面的編碼格式使用iconv()轉(zhuǎn)換一下內(nèi)容編碼

  //$html_data=iconv('gbk','utf-8',$html_data);

  $regular='#h1id=activity-name(.*?)/h1(.*?)spanid=post-date(.*?)span(.*?)/span(.*?)pclass=page-content(.*?)pclass=text(.*?)/p#is';

  preg_match_all($regular,$html_data,$connect);//進(jìn)行正規(guī)匹配取得自己要的內(nèi)容

  //循環(huán)取出需要的內(nèi)容數(shù)組

  foreach($connectas$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)容頁的鏈接同樣使用curl去獲取信息

  要注意的就是正則表達(dá)式里面的html需要跟頁面的格式一樣,你可以去原網(wǎng)站點(diǎn)右鍵查看源代碼,查看格式,把要抓取的html復(fù)制下來,如果還是有不能抓取的內(nèi)容可能就是格式不正確有可能有的地方是少空格或者多空格,這個(gè)時(shí)候直接在標(biāo)簽之間(.*?)。也可以一點(diǎn)一點(diǎn)的匹配看具體是哪個(gè)部分沒有匹配到。

  中企動(dòng)力為客戶提供網(wǎng)站開發(fā)定務(wù),網(wǎng)站制作居于LINUX+PHP+MYSQL框架,歡迎客戶咨詢我們建站熱線400-660-8066

* 文章來源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系客服刪除處理。
在線 咨詢

添加動(dòng)力小姐姐微信

微信 咨詢

電話咨詢

400-660-8066

我們聯(lián)系您

電話 咨詢
微信掃碼關(guān)注動(dòng)力小姐姐 X
qr