php 抓取新浪新闻的程序代码

首先,需要下载一个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

php 抓取新浪新闻的程序代码的相关文章

新浪新闻小偷_php基础

新浪新闻小偷 1. <html><head><meta http-equiv="Refresh" content="60"><META HTTP-EQUIV="Pragma" CONTENT="no-cache"><meta http-equiv="Content-Type" content="text/html"; charset=

Win8新浪新闻HD助你领略新闻之美

  新浪网作为一家服务于全球用户及社群的在线媒体及增值资讯服务提供商,凭借优质丰富的新闻内容和服务深受大众好评.为了更好地发挥移动.触控等功能,新浪新闻HD落地Windows 8平台推出了Windows版新浪新闻HD,旨在为用户带来更好的新闻阅读和交互体验. Windows版新浪新闻HD,是一款整合了新闻.体育.财经.图片和专栏等内容的个性化社交阅读软件,以第一时间提供高品质的全球资讯,让用 户能随时随地享受专业的资讯服务.除了有每天更新的海量资讯内容.最快最全的头条要闻,Windows版新浪新

网页抓取-抓取网页相关的应用程序

问题描述 抓取网页相关的应用程序 我需要抓取海词典典网站上所有四级词汇在"词汇搭配"那一栏的内容,谁能帮我做个解决这个问题的软件,我的QQ邮箱是1036418603@qq.com

Android仿新浪新闻SlidingMenu界面的实现

先看看原图: 如图所示,这种侧滑效果以另一种方式替代了原先tab导航的那种用户体验方式 给人耳目一新的感觉,现已被广大知名应用所效仿,如新浪新闻,网易新闻,人人网等 那么这种效果该如何实现呢?那就需要用到一个开源库SlidingMenu Github地址:https://github.com/jfeinstein10/SlidingMenu 里面包含了demo示例,相关效果图如下: 同时该库又依赖另一个开源库ActionBarSherkLock ,有关该库的介绍,请看此博文http://blog

今早新浪新闻爆出魅族科技获得6.5亿美元战略投资

摘要: 今早新浪新闻爆出魅族科技获得6.5亿美元战略投资,而阿里巴巴将领投5.9亿美元.接着魅族官方微博转发了这一消息,看来属实. 另外6千万美元则是来自于海通开元基金,曾领投蘑菇 今早新浪新闻爆出魅族科技获得6.5亿美元战略投资,而阿里巴巴将领投5.9亿美元.接着魅族官方微博转发了这一消息,看来属实. 另外6千万美元则是来自于海通开元基金,曾领投蘑菇公寓B轮.这是魅族科技自成立以来获得的第一次战略投资,华丽丽的贴上了阿里的牌. 对此次投资,阿里巴巴集团CTO王坚说:"对魅族的投资,代表了阿里巴

新浪新闻客户端:唯一进入两会现场的新闻客户端

今年两会期间,与会的部分代表和媒体记者发现驻地里的<参考消息>头版与往年有了一个变化:主文大标题右下方的显眼处,多了一个二维码,二维码下面是三行字:有温度,有情怀,新浪新闻客户端. 两会期间,新浪新闻客户端是唯一进入两会现场的新闻客户端. (图为记者正在两会现场扫面新浪新闻客户端) 与以往平面媒体.电视媒体和网络媒体构成两会报道主力军不同的是,今年新闻客户端产品成为了两会报道的"主战场".来自专业机构的数据显示,高达96%的互联网用户会选用新闻客户端来接收有关两会的新闻资讯

9月第1周国内新闻类网站/频道:新浪新闻居第二

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 IDC评述网(idcps.com) 09月13日报道:根据国际统计机构Alexa公布的最新数据显示,9月第1周(2013-09-02至2013-09-08)新闻类网站/频道排行首位是QQ新闻,其用户覆盖数为13202,第二位是覆盖数为9628的新浪新闻,第三位是9218的网易新闻.下面是IDC评述网整理的具体情况: (图1)9月第1周国内新闻

新浪新闻app滴滴打车红包领取方法

新浪新闻怎么领滴滴红包 1.打开浪新闻app,然后在界面中点击"¥"图标 2.然后可以看到新闻标题,点一篇阅读: 3.然后在查看新闻界面会有一项"滴滴礼包"选项 4.点"滴滴礼包"即可以领取了,即可了,当然也可以分享到其它平台去哦 好了以上就是小编为各位整理的一篇关于新浪新闻app滴滴打车红包领取方法了哦,希望文章对各位有用.

新浪新闻客户端上线 “移动为先”战略提速

硅谷网4月26日讯 新浪"移动为先"战略正加紧提速.继不久前新浪网全新改版后,4月26日,新浪宣布将旗下新闻类客户端掌中新浪更名为新浪新闻,全面覆盖IOS.android等主流操作平台.业内专家指出,随着移动互联网的 蓬勃发展,大众阅读已呈现越来越碎片化和社交化的趋势,这要求 新闻客户端的内容要更为精准,新浪敏锐洞察客户需求,打造个性化推荐阅读平台,开启社交阅读新时代. 新浪相关负责人介绍,从掌中新浪到新浪新闻,仅两字之差,但并不意味着原有模式的简单复制, 而是 一场以社交化方针为指导