我们如何获取网址的{reddit分享计数/分数

时间:2016-06-15 18:12:34

标签: php json reddit

我正在尝试使用php获取reddit url的份额/分数。我已经尝试过了

http://www.reddit.com/api/info.json?url=yoururl 

方法。

当我在浏览器中打开链接时,我得到了结果。但是当我使用curl尝试这个时,

 $url = 'yoururl';
    $reddit_url = 'http://www.reddit.com/api/info.{format}?url='.$url;
    $format = 'json'; 
    $score = $ups = $downs = 0; 

    $content = get_url(str_replace('{format}',$format,$reddit_url)); 
    if($content) {
        if($format == 'json') {
            $json = json_decode($content,true);
            foreach($json['data']['children'] as $child) { 
                $ups+= (int) $child['data']['ups'];
                $downs+= (int) $child['data']['downs'];
                //$score+= (int) $child['data']['score'];  
            }
            $score = $ups - $downs;
        }
    }

    echo "Ups: $ups<br />"; 
    echo "Downs: $downs<br />"; 
    echo "Score:  $score<br />"; 
        function get_url($url) {
        $ch = curl_init();
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,1);
        $content = curl_exec($ch);
        curl_close($ch);
        return $content;
    } 

或file_get_contents方法,

$json = json_decode(file_get_contents($reddit_url),true);

然后我收到以下错误消息,

行政规则禁止请求

所以我使用reddit API然后得到了分数,UP投票,

$pageInfo = $reddit->getPageInfo($url);

但我们需要使用我们的登录凭据,它只有一个小时的会话。

请告诉我使用php获取URL的reddit得分的最佳方法。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您需要设置CURLOPT_USERAGENT才能使其正常工作!以下代码将有效。

df.loc[:, ~df.iloc[-5:].isnull().any()]
df.loc[:, df.iloc[-5:].notnull().all()]