文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 招聘 专题 新闻
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» Php » 采集Yahoo用PHP的数据示例       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: 采集Yahoo用PHP的数据示例  ( 查看:1234  回复:0 )   
 
whatilsyou
新新人类  点击可查看详细



帖子 7
精华 0
无忧币 10
积分 23
阅读权限 20
注册日期 2007-10-10
最后登录 2007-11-9 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2007-10-10 09:38   标题:采集Yahoo用PHP的数据示例
上一帖 |
简单的PHP采集程序。。。  
  以前在公司就写过类似的东西,这次是帮以前的上司写了一个简单的采集程序。

    很简单的。。汗。没什么技术含量的。
    数据来源:http://cn.finance.yahoo.co...
    演示地址:http://traffic02.100steps....
  
    (修改了下,增加了数据缓存功能。。汗,没有使用lite_cache了,自己写了个最简单的那种。。)

(0);

$max_time=3600;
$cache_file='cache_yahoo.txt';

$nowtime=time();
if(!file_exists($cache_file)){
    $filetime=0;
}else{
    $filetime=filemtime($cache_file);
}

if($filetime+$max_time$nowtime){
//更新
    ob_start();
function get_yahoo_info($url){
    $content=file_get_contents($url);
     
    $pattern='|(.*) \((.*)\)  (.*)|U';
    preg_match_all($pattern,$content,$out);
    $info['company_name']=$out[1][0];
    $info['company_stock']=$out[2][0];

    $pattern='|最近交易价:(.*)|U';
    preg_match_all($pattern,$content,$out);
    $info['stock_price']=$out[1][0];

    $pattern='|涨跌:(.*)|U';
    preg_match_all($pattern,$content,$out);
    $info['stock_upordown']=$out[1][0];

    $pattern='|市值:(.*)|U';
    preg_match_all($pattern,$content,$out);
    $info['stock_value']=$out[1][0];     
     
    return $info;
}
$urls=explode(',',file_get_contents('url.txt'));
$i=0;
$matchs=array();
foreach($urls as $url){
    $rs=get_yahoo_info($url);
    if(!empty($rs)){
        $matchs[$i]=$rs;
        $i++;
        $rs='';
    }
}

//print_r(get_yahoo_info('http://cn.finance.yahoo.com/q?s=000063.SZ'));
?>

   
     
    公司名称
    股票代号
    股票价格
    股票涨幅
    市值
   
  =1;
foreach($matchs as $match){
  ?>
   
     
    ['company_name']?>
    ['company_stock']?>
    ['stock_price']?>
    ['stock_upordown']?>
    ['stock_value']?>
   
  ++;
  }?>

=ob_get_clean();
    $fp=fopen($cache_file,'w');
    if(!$fp)echo '打开文件失败';
    if (flock($fp, LOCK_EX)) { // 进行排它型锁定
        if(!fwrite($fp, $content))echo '文件写入失败';
        flock($fp, LOCK_UN); // 释放锁定
    } else {
        //echo "Couldn't lock the file !";
        if(!fwrite($fp, $content))echo '文件写入失败';
    }
    fclose($fp);
    //echo 'cache time:'.time();
    echo $content;
}else{
    //echo 'cache!';
    echo file_get_contents($cache_file);
}
?>




网络工程师到底该不该去考CCIE认证?
2007-10-10 09:381楼
[ 顶部 ]
     
论坛跳转:  

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号