我正在尝试使用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得分的最佳方法。
提前致谢。
答案 0 :(得分:0)
您需要设置CURLOPT_USERAGENT才能使其正常工作!以下代码将有效。
df.loc[:, ~df.iloc[-5:].isnull().any()]
df.loc[:, df.iloc[-5:].notnull().all()]