Home  >  Article  >  Backend Development  >  简单采集了yahoo的一些数据_php技巧

简单采集了yahoo的一些数据_php技巧

WBOY
WBOYOriginal
2016-05-17 09:41:20987browse

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

    很简单的。。汗。没什么技术含量的。
    数据来源: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//更新 
    ob_start(); 
function get_yahoo_info($url){ 
    $content=file_get_contents($url); 

    $pattern='| (.*) \((.*)\)  (.*) |U'; 
    preg_match_all($pattern,$content,$out); 
    $info['company_name']=$out[1][0]; 
    $info['company_stock']=$out[2][0]; 

    $pattern='| 最近交易价: (.*)|U'; 
    preg_match_all($pattern,$content,$out); 
    $info['stock_price']=$out[1][0]; 

    $pattern='|涨跌: (.*)|U'; 
    preg_match_all($pattern,$content,$out); 
    $info['stock_upordown']=$out[1][0]; 

    $pattern='|市值: (.*)|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')); 
?> 
 
   
     
     
     
     
     
     
   
    
  $i=1; 
foreach($matchs as $match){ 
  ?> 
   
     
     
     
     
     
     
   
    
  $i++; 
  }?> 
 
公司名称
股票代号
股票价格
股票涨幅
市值
=$i?>
=$match['company_name']?>
=$match['company_stock']?>
=$match['stock_price']?>
=$match['stock_upordown']?>
=$match['stock_value']?>
 
  
    $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); 

?> 
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn