简单采集了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 相关文章推荐
substr()函数中文版
Oct 09 PHP
使用PHP提取视频网站页面中的FLASH地址的代码
Apr 17 PHP
mac下使用brew配置环境的步骤分享
May 23 PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
Jul 03 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
Jan 29 PHP
浅析PHP程序设计中的MVC编程思想
Jul 28 PHP
PHP中is_file()函数使用指南
May 08 PHP
解决PHP里大量数据循环时内存耗尽的方法
Oct 10 PHP
php开发时容易忘记的一些技术细节
Feb 03 PHP
thinkPHP5.0框架开发规范简介
Mar 25 PHP
PHP正则匹配到2个字符串之间的内容方法
Dec 24 PHP
浅谈laravel 5.6 安装 windows上使用composer的安装过程
Oct 18 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 图片上传类代码
2009/07/17 PHP
php生成高清缩略图实例详解
2015/12/07 PHP
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
JavaScript在IE中“意外地调用了方法或属性访问”
2008/11/19 Javascript
js中数组Array的一些常用方法总结
2013/08/12 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
jQuery实现菜单感应鼠标滑动动画效果的方法
2015/02/28 Javascript
node.js读取文件到字符串的方法
2015/06/29 Javascript
JavaScript编写连连看小游戏
2015/07/07 Javascript
jQuery基于扩展简单实现倒计时功能的方法
2016/05/14 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
vue2.0 datepicker使用方法
2018/02/04 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
[08:04]TI4西雅图DOTA2前线报道 海涛探访各路人马
2014/07/09 DOTA
跟老齐学Python之传说中的函数编写条规
2014/10/11 Python
Python编程求解二叉树中和为某一值的路径代码示例
2018/01/04 Python
对python抓取需要登录网站数据的方法详解
2018/05/21 Python
Python后台管理员管理前台会员信息的讲解
2019/01/28 Python
python3射线法判断点是否在多边形内
2019/06/28 Python
python networkx 包绘制复杂网络关系图的实现
2019/07/10 Python
Python 获取windows桌面路径的5种方法小结
2019/07/15 Python
如何解决django-celery启动后迅速关闭
2019/10/16 Python
利用python实现平稳时间序列的建模方式
2020/06/03 Python
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
美国在线医疗分销商:MedEx Supply
2020/02/04 全球购物
职高毕业生自我鉴定
2013/10/21 职场文书
自我评价的范文
2014/02/02 职场文书
管理部副部长岗位职责范文
2014/03/09 职场文书
超市创业计划书
2014/04/24 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
公司老总年会致辞
2015/07/30 职场文书
机械生产实习心得体会
2016/01/22 职场文书
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python
CSS浮动引起的高度塌陷问题
2022/08/05 HTML / CSS