简单采集了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 相关文章推荐
用phpmyadmin更改mysql5.0登录密码
Mar 25 PHP
PHP根据IP地址获取所在城市具体实现
Nov 27 PHP
8个PHP程序员常用的功能汇总
Dec 18 PHP
PHP实现的简易版图片相似度比较
Jan 07 PHP
Codeigniter实现发送带附件的邮件
Mar 19 PHP
php解析xml方法实例详解
May 12 PHP
PHP引用返回用法示例
May 28 PHP
PHP链表操作简单示例
Oct 15 PHP
thinkPHP中volist标签用法示例
Dec 06 PHP
PHP用PDO如何封装简单易用的DB类详解
Jul 30 PHP
PHP实现的折半查找算法示例
Dec 19 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
Nov 10 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 in_array 函数使用说明与in_array需要注意的地方说明
2010/04/13 PHP
php中使用接口实现工厂设计模式的代码
2012/06/17 PHP
具有时效性的php加密解密函数代码
2013/06/19 PHP
codeigniter中实现一次性加载多个view的方法
2015/03/20 PHP
php实现专业获取网站SEO信息类实例
2015/04/02 PHP
php比较相似字符串的方法
2015/06/05 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
Javascript 同时提交多个Web表单的方法
2009/02/19 Javascript
js String对象中常用方法小结(字符串操作)
2012/01/27 Javascript
深入领悟JavaScript中的面向对象
2013/11/18 Javascript
jQuery中unwrap()方法用法实例
2015/01/16 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
浅谈Angular 的变化检测的方法
2018/03/01 Javascript
vue 做移动端微信公众号采坑经验记录
2018/04/26 Javascript
详解element-ui中form验证杂记
2019/03/04 Javascript
使用 vue 实现灭霸打响指英雄消失的效果附demo
2019/05/06 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
2020/05/31 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
Python数据库的连接实现方法与注意事项
2016/02/27 Python
Python定时器实例代码
2017/11/01 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
Python实现的FTP通信客户端与服务器端功能示例
2018/03/28 Python
Django 重写用户模型的实现
2019/07/29 Python
python性能测量工具cProfile使用解析
2019/09/26 Python
神经网络训练采用gpu设置的方式
2021/03/03 Python
英国时尚家具、家居饰品及礼品商店:Graham & Green
2016/09/15 全球购物
马来西亚网上美容店:Hermo.my
2017/11/25 全球购物
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
2015年全国“爱牙日”宣传活动总结
2015/03/23 职场文书
python爬虫--selenium模块
2021/03/31 Python