- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
import praw
def get_data_reddit(search):
username=""
password=""
r = praw.Reddit(user_agent='')
r.login(username,password,disable_warning=True)
posts=r.search(search, subreddit=None,sort=None, syntax=None,period=None,limit=None)
title=[]
for post in posts:
title.append(post.title)
print len(title)
search="stackoverflow"
get_data_reddit(search)
Ouput=953
为什么有限制?
We can at most get 1000 results from every listing, this is anupstream limitation by reddit. There is nothing we can do to go pastthis limit. But we may be able to get the results we want with thesearch() method instead.
任何解决方法?我希望以某种方式克服 API 问题,我为 twitter 数据编写了一个scraper,但发现它不是最有效的解决方案。
同样的问题:https://github.com/praw-dev/praw/issues/430[1]: https://praw.readthedocs.org/en/v2.0.15/pages/faq.html相关讨论也请引用上述链接。
最佳答案
限制搜索或列表的结果是减少服务器负载的常用策略。 reddit API 很清楚这就是它的作用(正如您已经标记的那样)。然而,它并不止于此......
API 还支持列表分页结果的变体。由于它是一个不断变化的数据库,它们不提供页面,而是允许您使用“after”参数从中断的地方继续。这记录在案 here .
现在,虽然我不熟悉 PRAW,但我看到 reddit search API符合列表语法。因此,我认为您只需要重新发出搜索,指定额外的“after”参数(指的是第一次搜索的最后结果)。
经过随后的尝试,PRAW 似乎真正返回了您所要求的所有结果。
应 OP 的要求,这是我编写的用于查看分页结果的代码。
import praw
def get_data_reddit(search, after=None):
r = praw.Reddit(user_agent='StackOverflow example')
params = {"q": search}
if after:
params["after"] = "t3_" + str(after.id)
posts = r.get_content(r.config['search'] % 'all', params=params, limit=100)
return posts
search = "stackoverflow"
post = None
count = 0
while True:
posts = get_data_reddit(search, post)
for post in posts:
print(str(post.id))
count += 1
print(count)
关于python - Reddit 搜索 API 未提供所有结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31000892/
Reddit 对于热门帖子有不同的存储桶。他们有“此时”、“今天”、“本周”、“本月”、“今年”、“所有时间”。我能想到的创建这些列表的最佳方法是用时间戳保存每个投票,以便您可以计算每个存储桶的帖子分
我正在尝试使用 praw.reddit 命令抓取 Reddit,但我不断收到以下信息: prawcore.exceptions.OAuthException: unauthorized_client
我正在尝试使用 praw.reddit 命令抓取 Reddit,但我不断收到以下信息: prawcore.exceptions.OAuthException: unauthorized_client
我正在使用 passport-reddit 在我的 node.js 网络服务器上实现 Reddit 登录系统。我现有的系统返回我需要的用户的所有信息,除了他们的电子邮件地址。我想知道社区中是否有人知道
我一直在查看REDDIT api文档,仅通过查看它,似乎无法(?)向另一个Reddit用户发送PM消息。请证明我错了:) 是否可以看到其他用户的 subredddit 订阅? 感谢您提供任何意见。 最
我正在尝试获取帖子上的 self.text 并使用此路线: reddit('/r/Denmark/comments/2jc5yk/how_to_live_in_denmark.json').listi
是否可以通过URL发布指向Reddit的链接? 例如,对于Facebook,您可以 Share Stackoverflow on your profile! Reddit是否具有我可以点击以共
我知道有一种方法可以将链接发布到reddit。 https://www.reddit.com/r/test/submit?title=myTitle&url=http://www.exampledsf
我正在尝试使用 Snoocore 库以编程方式向 Reddit 发布评论。 这是我的代码: function postComment() { var commentText =
我正在制作一个自动回复机器人,该机器人扫描给定命令的r/所有提交评论,例如。 !命令 当它检测到此命令时,将使用字符串回复注释: eg. "Hello" 我得到的错误是新帐户有一个限制,即新帐户每10
我正在尝试获取特定文章的所有 reddit 评论。 在 Reddit API 页面上,似乎暗示: www.reddit.com/r/subreddit/comments/ARTICLE 会给我这些结果
我正在使用 chrome 开发人员工具查看代码,并尝试在我的网站上模拟它,但它的工作方式不同。 显然通过设置边距:0;,边距被删除,但边距在技术上不需要为负数就没有空间了吗? 我没有在 css 格式中
当你点击 reddit 注册按钮时,一个漂亮的窗口弹出,屏幕的其余部分变黑。您可以单击屏幕的其余部分以关闭弹出窗口。 我知道我可以为此使用最外层的 div,但 reddit 是这样做的吗?他们是否也在
Reddit 使用时间衰减算法。这意味着排序顺序可能会发生变化。当用户转到第 2 页时,是否有一种机制可以防止他们看到位于第 1 页但在翻页之前被跳到第 2 页的帖子?这只是排序方法的一个可接受的缺陷
我四处搜寻,找不到有同样问题的人,所以希望这不是多余的。 我试图让 chrome 扩展在每次 Reddit 增强套件加载新页面时修改 DOM(永无休止的自动滚动或其他内容)。 window.addEv
reddit 预览 gif 和图像。我厌倦了发布我的一些页面,但当添加了 html/javascript 时,reddit 不会预览我的 gif。然后我粘贴了一个imgur链接this is te i
我们有一个类似reddit的PHP网站,用户可以为故事投票。 我们尝试在网站上使用 APC、memcached 等,但我们放弃了。问题是我们想要使用缓存机制,但用户可以在网站上随时投票,并且缓存的数据
我有一个接收 Reddit 评论并吐出回复的功能。我希望此函数映射到 Reddit 上发布的每条新评论。 我应该如何从 reddit 获取评论?经常拉取 100 条最近的评论似乎有点浪费,这样就不会遗
我正在尝试异步(或延迟加载)此 Reddit 小部件,但遇到问题。 下面是直接在 html 中完美运行的基本代码: 如果我尝试将其移至我的 scripts.js 中执行其他 jQuery 内
背景:我目前正在使用 praw 制作 Reddit 机器人。 Python 3.7 的库。我的机器人需要做的一件事是检查某些 Reddit 子版 block 上的最新帖子,看看它们是否仅包含图像而没有
我是一名优秀的程序员,十分优秀!