简单采集了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连接mssql:pdo odbc sql server
Jul 20 PHP
php实现rc4加密算法代码
Apr 25 PHP
比较discuz和ecshop的截取字符串函数php版
Sep 03 PHP
用来解析.htpasswd文件的PHP类
Sep 05 PHP
php多维数组去掉重复值示例分享
Mar 02 PHP
PHP中cookie和session的区别实例分析
Aug 28 PHP
php实现XSS安全过滤的方法
Jul 29 PHP
PHP闭包函数传参及使用外部变量的方法
Mar 15 PHP
PHP list() 将数组中的值赋给变量的简单实例
Jun 13 PHP
JavaScript实现删除电脑的关机键
Jul 26 PHP
PHP数据的提交与过滤基本操作实例详解
Nov 11 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 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中的日期加减方法示例
2014/08/21 PHP
浅谈laravel orm 中的一对多关系 hasMany
2019/10/21 PHP
IE7中javascript操作CheckBox的checked=true不打勾的解决方法
2009/12/07 Javascript
javascript跨域刷新实现代码
2011/01/01 Javascript
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
jquery自定义下拉列表示例
2014/04/25 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
JS button按钮实现submit按钮提交效果
2016/11/01 Javascript
jQGrid Table操作列中点击【操作】按钮弹出按钮层的实现代码
2016/12/05 Javascript
JavaScript生成.xls文件的代码
2016/12/22 Javascript
layer弹出层中H5播放器全屏出错的解决方法
2017/02/21 Javascript
最全的JavaScript开发工具列表 总有一款适合你
2017/06/29 Javascript
元素全屏的设置与监听实例
2017/11/28 Javascript
mint-ui 时间插件使用及获取选择值的方法
2018/02/09 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
vue实现百度下拉列表交互操作示例
2019/03/12 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
使用pkg打包ThinkJS项目的方法步骤
2019/12/30 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
跟老齐学Python之for循环语句
2014/10/02 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
python redis 批量设置过期key过程解析
2019/11/26 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
python 实用工具状态机transitions
2020/11/21 Python
HTML5的自定义属性data-*详细介绍和JS操作实例
2014/04/10 HTML / CSS
AmazeUI 折叠面板的实现代码
2020/08/17 HTML / CSS
科室工作个人总结的自我评价
2013/10/29 职场文书
《云房子》教学反思
2014/04/20 职场文书
应聘英语教师求职信
2014/04/24 职场文书
教师职位说明书
2014/07/29 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android