首先,需要下载一个simple_html_dom第三方扩展库,具体下载方式和使用详情可以查看:simple_html_dom的使用.
需要环境支持file_get_contents()函数和curl的支持,具体代码如下:
<?php function timingimg($url,$dirname,$interval){ ignore_user_abort(); //浏览器关闭,程序继续执行 set_time_limit(0);//忽略到默认30秒超时 $interval = empty($interval)?3600:$interval; $dirname = empty($dirname)?'news/':$dirname; if(empty($url)){ die('请输入目标网址!!!'); } do{ $arr = loadimg($url,$dirname); return $arr; //返回抓取内容所保存的路径 sleep($interval); die; }while(true); } /** *获取所有新闻链接 *参数 $url 新闻列表地址 *参数 $dirname 新闻图片保存路径 * 返回 二维数组 所有新闻记录 */ 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; } /** * * * 抓取单个新闻内容 *参数 $url 新闻页面地址 *参数 $dirname 图片保存路径 *返回 一个新闻记录 一维数组 */ 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; } ?>
如果大家有更好的建议,欢迎提出来
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索函数
, 程序
代码
新浪新闻代码、新浪新闻调用代码、新浪博客 新闻代码、新浪微博数据抓取、python 抓取新浪微博,以便于您获取更多的相关知识。
时间: 2024-08-12 13:27:04