简单采集了yahoo的一些数据


Posted in PHP onFebruary 14, 2007

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

    很简单的。。汗。没什么技术含量的。
    数据来源: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" > </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($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);  
}  
?> 
PHP 相关文章推荐
一个PHP模板,主要想体现一下思路
Dec 25 PHP
PHP调用Webservice实例代码
Jul 29 PHP
三个类概括PHP的五种设计模式
Sep 05 PHP
实用的简单PHP分页集合包括使用方法
Oct 21 PHP
php指定函数参数默认值示例代码
Dec 04 PHP
Thinkphp中的volist标签用法简介
Jun 18 PHP
ThinkPHP3.1新特性之对页面压缩输出的支持
Jun 19 PHP
destoon实现商铺管理主页设置增加新菜单的方法
Jun 26 PHP
11个PHPer必须要了解的编程规范
Sep 22 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
Aug 05 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
Dec 13 PHP
自己前几天写的无限分类类
Feb 14 #PHP
用PHPdig打造属于你自己的Google[图文教程]
Feb 14 #PHP
php中的一个中文字符串截取函数
Feb 14 #PHP
PHP音乐采集(部分代码)
Feb 14 #PHP
一个数据采集类
Feb 14 #PHP
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
Feb 11 #PHP
增加反向链接的101个方法 站长推荐
Jan 31 #PHP
You might like
PHP 中关于ord($str)&amp;gt;0x80的详细说明
2012/09/23 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
2016/03/21 PHP
php结合md5的加密解密算法实例
2016/09/30 PHP
php mysql操作mysql_connect连接数据库实例详解
2016/12/26 PHP
javascript 中对象的继承〔转贴〕
2007/01/22 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
正则 js分转元带千分符号详解
2017/03/08 Javascript
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
Vue中添加手机验证码组件功能操作方法
2017/12/07 Javascript
vue element-ui实现input输入框金额数字添加千分位
2019/12/29 Javascript
vue实现带过渡效果的下拉菜单功能
2020/02/19 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
[03:07]2015国际邀请赛选手档案EHOME.rOtK 是什么让他落泪?
2015/07/31 DOTA
Python的Flask框架中实现登录用户的个人资料和头像的教程
2015/04/20 Python
Python中的zipfile模块使用详解
2015/06/25 Python
Python 基础教程之包和类的用法
2017/02/23 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
python 调用钉钉机器人的方法
2019/02/20 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
2019/04/03 Python
Python包和模块的分发详细介绍
2020/06/19 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
华润集团网上药店:健一网
2016/09/19 全球购物
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
高性能钓鱼服装:Huk Gear
2019/02/20 全球购物
Belstaff英国官方在线商店:Belstaff.co.uk
2021/02/09 全球购物
小学教师学期末自我评价
2013/09/25 职场文书
yy结婚证婚词
2014/01/10 职场文书
2014厂务公开实施方案
2014/02/17 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
员工工作及收入证明
2014/10/28 职场文书
CSS变量实现主题切换的方法
2021/06/23 HTML / CSS
Win11任务栏无法正常显示 资源管理器不停重启的解决方法
2022/07/07 数码科技
Win10服务主机占用内存怎么办?Win10服务主机进程占用大量内存解决方法
2022/09/23 数码科技