频道直达 - 专题 - 新闻 - 基础 - 高级 - 安装 - 技巧 - 数据库 - 手册 - PHP - Linux - Java - MySQL - Apache - 麻辣堂 - 狼盟 - Rails社群 - 搜索 - 下载 - 开源 - 论坛

用PHP采集Yahoo的数据示例

来源:www.phpres.com 作者:Angelover 出处:www.phpres.com 2007-9-11 17:47:44 进入讨论组
关 键 词: 数据 采集 #ABD0FAbgcolor topbordercolor tdvalign center

简单的PHP采集程序。。。  

  以前在公司就写过类似的东西,这次是帮以前的上司写了一个简单的采集程序。

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


<?
set_time_limit
(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='|<tr class="yfnc_modtitle1"><td><small><b>(.*)</b> \((.*)\)  (.*)</small></td><td align="right">|U'
;
    
preg_match_all($pattern,$content,$out
);
    
$info['company_name']=$out[1][0
];
    
$info['company_stock']=$out[2][0
];

    
$pattern='|<td class="yfnc_tablehead1" width="52%">最近交易价:</td><td class="yfnc_tabledata1"><big><b>(.*)</b></big></td>|U'
;
    
preg_match_all($pattern,$content,$out
);
    
$info['stock_price']=$out[1][0
];

    
$pattern='|<td class="yfnc_tablehead1" width="52%">涨跌:</td><td class="yfnc_tabledata1">(.*)</td>|U'
;
    
preg_match_all($pattern,$content,$out
);
    
$info['stock_upordown']=$out[1][0
];

    
$pattern='|<td class="yfnc_tablehead1" width="54%">市值:</td><td class="yfnc_tabledata1">(.*)</td>|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'));
?>
<table border="1" width="100%" cellpadding="6" style="border-collapse: collapse" bordercolor="#8CBFF9" cellspacing="0" bgcolor="#DFEDFD">
  <tr>
    <td width="30" height="" valign="top" bordercolor="#ABD0FA" bgcolor="#E1EEFD" >&nbsp;</td>
    <td valign="top" bordercolor="#ABD0FA" bgcolor="#E1EEFD" ><div align="center">公司名称</div></td>
    <td valign="top" bordercolor="#ABD0FA" bgcolor="#E1EEFD" ><div align="center">股票代号</div></td>
    <td valign="top" bordercolor="#ABD0FA" bgcolor="#E1EEFD" ><div align="center">股票价格</div></td>
    <td valign="top" bordercolor="#ABD0FA" bgcolor="#E1EEFD" ><div align="center">股票涨幅</div></td>
    <td valign="top" bordercolor="#ABD0FA" bgcolor="#E1EEFD" ><div align="center">市值</div></td>
  </tr>
  
<? 
  $i
=1
;
foreach(
$matchs as $match
){
  
?>
  <tr>
    <td height="" align="center" valign="top" bordercolor="#ABD0FA" bgcolor="#FFFFFF" ><?=$i?></td>
    <td valign="top" bordercolor="#ABD0FA" bgcolor="#FFFFFF" ><div align="center"><?=$match['company_name']?></div></td>
    <td valign="top" bordercolor="#ABD0FA" bgcolor="#FFFFFF" ><div align="center"><?=$match['company_stock']?></div></td>
    <td valign="top" bordercolor="#ABD0FA" bgcolor="#FFFFFF" ><div align="center"><?=$match['stock_price']?></div></td>
    <td valign="top" bordercolor="#ABD0FA" bgcolor="#FFFFFF" ><div align="center"><?=$match['stock_upordown']?></div></td>
    <td valign="top" bordercolor="#ABD0FA" bgcolor="#FFFFFF" ><div align="center"><?=$match['stock_value']?></div></td>
  </tr>
  
<? 
  $i
++;
  }
?>
</table>
<? 
    $content
=ob_get_clean
();
    
$fp=fopen($cache_file,'w'
);
    if(!
$fp)echo '打开文件失败'
;
    if (
flock($fpLOCK_EX)) { 
// 进行排它型锁定
        
if(!fwrite($fp$content))echo '文件写入失败'
;
        
flock($fpLOCK_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
);
}
?>
欢迎进入PHP开发资源论坛讨论。
收藏此文】【 】【打印】【关闭
相关文章
图文推荐
论 坛 资 源
PHP开发资源网奋斗目标
阅读排行:
热门技术文档
最新图文档
本站编辑推荐:(本站开通Delphi4PHP专区,欢迎进入论坛交流!)
编缉最近更新文章
网站赞助商
搜索您感兴趣的内容
 
   网站首页 -  网站地图 -  网站合作 -  手册中心 -  通用网址 -  网站论坛 -  网站投稿 -  友情链接 -  帮助中心
版权所有:PHP开发资源网 © 2003-2008 通用网址:PHP资源网 合作媒体: 赛迪网IT技术
互联网违法和不良信息举报中心 | 不良信息举报信箱