php每天扒取当天新闻_php 抓取新浪新闻的程序代码
生活随笔
收集整理的這篇文章主要介紹了
php每天扒取当天新闻_php 抓取新浪新闻的程序代码
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Jquery中文網(wǎng)?>
腳本編程 ?>
php ?>
正文 php 抓取新浪新聞的程序代碼
php 抓取新浪新聞的程序代碼
發(fā)布時(shí)間:2016-10-09 ? 編輯:www.jquerycn.cn
jquery中文網(wǎng)為您提供php 抓取新浪新聞的程序代碼等資源,歡迎您收藏本站,我們將為您提供最新的php 抓取新浪新聞的程序代碼資源
抓取就是采集了,今天因?yàn)槲覀円鲆粋€(gè)實(shí)時(shí)采集新浪新聞的功能,下面整理了一個(gè)非常了得的php 抓取新浪新聞的程序,我們來看看。
首先,需要下載一個(gè)simple_html_dom第三方擴(kuò)展庫,具體下載方式和使用詳情可以查看:simple_html_dom的使用.
需要環(huán)境支持file_get_contents()函數(shù)和curl的支持,具體代碼如下:
<?php ? function?timingimg($url,$dirname,$interval){ ??ignore_user_abort();?//瀏覽器關(guān)閉,程序繼續(xù)執(zhí)行 ??set_time_limit(0);//忽略到默認(rèn)30秒超時(shí) ??$interval?=?empty($interval)?3600:$interval; ??$dirname?=?empty($dirname)?'news/':$dirname; ??if(empty($url)){ ????die('請輸入目標(biāo)網(wǎng)址!!!'); ??} ??do{ ????$arr?=?loadimg($url,$dirname); ?return?$arr;????//返回抓取內(nèi)容所保存的路徑 ?sleep($interval); ?die; ??}while(true); } ? ? /** *獲取所有新聞鏈接 *參數(shù)?$url??新聞列表地址 *參數(shù)?$dirname?新聞圖片保存路徑 *?返回?二維數(shù)組??所有新聞?dòng)涗? */ function?loadimg($url,$dirname){? ??set_time_limit(0); ??include_once('simple_html_dom.php'); ??$ch?=?curl_init(); ??curl_setopt($ch,CURLOPT_URL,$url); ??curl_setopt($ch,CURLOPT_HEADER,false); ??curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); ??$output?=?curl_exec($ch); ??curl_close($ch); ??$html?=?new?simple_html_dom(); ??$html->load($output); ??$images?=?array(); ??$arr?=?array(); ??foreach($html->find('li??a')?as?$element){ ? ????if(?preg_match('#^http:\/\/tech\.sina\.com\.cn\/it\/[\d]{4}\-[\d]{1,2}\-[\d]{1,2}\/[\d] \.shtml$#i',$element->href)){ ???array_push($images,$element->href); ??} ?} ??$images?=?array_unique($images); ?? ??sort($images); ??for($i=0;$i<10;$i ){??//只抓取10條記錄 ???$arr[]?=?getcontent($images[$i],$dirname); ?} ??return?$arr;? } ? /** * * *?抓取單個(gè)新聞內(nèi)容 *參數(shù)??$url?新聞頁面地址 *參數(shù)??$dirname?圖片保存路徑 *返回?一個(gè)新聞?dòng)涗?一維數(shù)組 */ function?getcontent($url,$dirname){ ?include_once('simple_html_dom.php'); ?$html?=?new?simple_html_dom(); ?$data?=?file_get_contents($url); ?$html->load($data);?? ????$arr?=?array(); ????foreach($html->find('h1#artibodyTitle')?as?$element){ ????$arr['title']=?@iconv('gbk','utf-8',?$element->innertext); ; ???} ???$str?=?''; ???foreach($html->find('div#artibody?p')?as?$element){ ????$str.=?$element;?????? ???} ???$arr['content']?=?$str; ???foreach($html->find('div.img_wrapper?img')?as?$element){ ??????$arr['alt']?=$element->alt; ??????$data?=?file_get_contents($element->src); ??????$info?=?getimagesize($element->src);//get?image?information ??????switch($info[2]){ ????????case?1: ???????$str?=?'gif'; ???????break; ????????case?2: ???????$str?=?'jpg'; ???????break; ????????case?3: ???????$str?=?'png'; ???????break; ????????default: ???????continue; ???????break; ??????} ??????$filename?=?time().rand(1,999999).'.'.$str;? ??????if(!is_dir($dirname)){ ????????mkdir($dirname,0777,true); ??????} ??????$fp?=?fopen($dirname.$filename,'w');???????????? ??????fwrite($fp,$data); ??????fclose($fp); ??????$arr['img']?=?$dirname.$filename; ?????? ????} ???return?$arr; } ?>如果大家有更好的建議,歡迎提出來
[關(guān)閉]
總結(jié)
以上是生活随笔為你收集整理的php每天扒取当天新闻_php 抓取新浪新闻的程序代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cd返回上一 git_git统计代码量脚
- 下一篇: maven依赖decoder_引入依赖m