我希望收集subreddit上所有帖子的标题,我想知道最好的方法是什么?
我环顾四周,发现了一些关于Python和机器人的东西。我还简要介绍了API,并且不确定要去哪个方向。
由于我不想承诺找出通过它的90%的工作方式,我会问是否有人可以指出我正确的语言方向和附加功能,例如pip所需的任何软件蟒。
我自己的经验是在PHP等网络语言中,所以我最初想到的是一个网络应用程序可以解决这个问题,但我不确定这是不是最好的方式以及如何去做。
所以我的问题就是
收集标题(散装)的最佳方法是什么? 版(Subreddit)?
或者如果那太主观了
如何检索和存储subreddit的所有帖子?
最好需要:
提前致谢。
答案 0 :(得分:2)
PHP; 25行:
$subreddit = 'pokemon';
$max_pages = 10;
// Set variables with default data
$page = 0;
$after = '';
$titles = '';
do {
$url = 'http://www.reddit.com/r/' . $subreddit . '/new.json?limit=25&after=' . $after;
// Set URL you want to fetch
$ch = curl_init($url);
// Set curl option of of header to false (don't need them)
curl_setopt($ch, CURLOPT_HEADER, 0);
// Set curl option of nobody to false as we need the body
curl_setopt($ch, CURLOPT_NOBODY, 0);
// Set curl timeout of 5 seconds
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
// Set curl to return output as string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Execute curl
$output = curl_exec($ch);
// Get HTTP code of request
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// Close curl
curl_close($ch);
// If http code is 200 (success)
if ($status == 200) {
// Decode JSON into PHP object
$json = json_decode($output);
// Set after for next curl iteration (reddit's pagination)
$after = $json->data->after;
// Loop though each post and output title
foreach ($json->data->children as $k => $v) {
$titles .= $v->data->title . "\n";
}
}
// Increment page number
$page++;
// Loop though whilst current page number is less than maximum pages
} while ($page < $max_pages);
// Save titles to text file
file_put_contents(dirname(__FILE__) . '/' . $subreddit . '.txt', $titles);