我使用下面的代码以获得与PRAW 4.4.0 reddit的搜索结果:
params = {'sort':'new', 'time_filter':'year'}
return reddit.subreddit(subreddit).search('', **params)
Run Code Online (Sandbox Code Playgroud)
我想从subreddit上刮取无限量的帖子,最长期限为一年。reddit的的搜索功能(相应的,其API)实现了这一与“后”的参数。然而,上述搜索功能不接受“后”作为一个参数。有没有办法使用PRAW的.search()获得超过100个搜索结果的方法吗?
我正在使用PRAW查看大量的Reddit搜索结果(提交和注释),而我用来收集数据的方法经常会产生503错误:
prawcore.exceptions.ServerError: received 503 HTTP response
Run Code Online (Sandbox Code Playgroud)
据我了解,如果是速率限制问题,PRAW会抛出praw.errors.RateLimitExceeded错误.
产生错误的函数如下:
def search_subreddit(subreddit_name, last_post=None):
params = {'sort': 'new', 'time_filter': 'year',
'limit': 100, 'syntax':'cloudsearch'}
if last_post:
start_time = 0
end_time = int(last_post.created) + 1
query = 'timestamp:%s..%s' % (start_time, end_time)
else:
query = ''
return reddit.subreddit(subreddit_name).search(query, **params)
Run Code Online (Sandbox Code Playgroud)
这是在循环中调用的.任何想法为什么生成503错误,以及如何防止它发生?