使用PHP处理特定信息的页面

时间:2010-10-07 16:27:16

标签: php file-get-contents

例如,我希望挖掘https://stackoverflow.com/privileges/user/3并获取div <div class="summarycount al">6,525</div>中的数据,以便我可以将声誉与用户数一起添加到本地数据库。我想我可以使用file_get_contents

 $data = file_get_contents('https://stackoverflow.com/privileges/user/3');

如何提取所需数据,即上例中的6,525?

1 个答案:

答案 0 :(得分:2)

  1. 您需要登录(通过PHP)才能查看相关信息。这不是很简单,需要一些工作。

  2. 您可以使用* shrugs * regex来解析数据,或使用像PHP Simple HTML DOM Parser这样的XML解析器。使用正则表达式...:

    preg_match('!<div class="summarycount al">(.+?)</div>!', $contents, $matches);
    $rep = $matches[1];
    
  3. 如果您正在搜索SO,则可以使用SO API。

  4. 代码:

    $url = 'http://api.stackoverflow.com/1.0/users/3';
    
    $tuCurl = curl_init(); 
    curl_setopt($tuCurl, CURLOPT_URL, $url); 
    curl_setopt($tuCurl, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($tuCurl, CURLOPT_ENCODING, 'gzip'); 
    
    $data = curl_exec($tuCurl); 
    $parse = json_decode($data, true);
    $rep = $parse['users'][0]['reputation'];
    
    echo $rep;