You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用PRAW截取Reddit帖子标题数字并过滤内容

解决方案:过滤Reddit帖子标题数字符合要求的内容

这里给你整理了完整的修改代码,既能过滤置顶帖,又能筛选出标题前两位数字不大于18的帖子,还把符合条件的内容存到了变量里:

import praw

# 初始化PRAW客户端(替换为你的真实凭据)
reddit = praw.Reddit(
    client_id='REDACTED',
    client_secret='REDACTED',
    username='REDACTED',
    password='REDACTED',
    user_agent='REDACTED'
)

subreddit = reddit.subreddit('NumbersReddit')
new_numpost = subreddit.new(limit=10)
valid_posts = []  # 存储符合条件的帖子信息的变量

for submission in new_numpost:
    # 先跳过置顶帖子
    if not submission.stickied:
        # 提取标题前两位数字并转为整数(你说标题开头始终是两位数字,所以这个操作安全)
        title_number = int(submission.title[:2])
        # 只保留标题数字≤18的帖子(移除大于18的)
        if title_number <= 18:
            # 打印符合要求的帖子信息
            print(50*'-')
            print(f'User: {submission.author}')
            print(f'Title: {submission.title}')
            print(f'URL: {submission.url}')
            # 将帖子信息存入变量,方便后续处理
            valid_posts.append({
                'author': str(submission.author),
                'title': submission.title,
                'url': submission.url
            })

# 可以查看存储的有效帖子列表
print("\n已保存的有效帖子:")
for post in valid_posts:
    print(post['title'])

关键逻辑拆解

  • 置顶帖过滤:if not submission.stickied确保我们只处理普通帖子,跳过社区置顶的公告类内容。
  • 标题数字提取:submission.title[:2]直接截取标题前两位字符,再用int()转为整数——因为你明确说明标题开头始终是两位数字,所以这个切片操作不会出问题。
  • 数值筛选:if title_number <= 18实现你的核心需求:移除标题数字大于18的帖子,只保留符合阈值的内容。
  • 变量存储:新增的valid_posts列表可以把符合条件的帖子信息(作者、标题、URL)都存起来,后续你可以直接调用这个变量做进一步分析或保存。

额外优化建议

如果后续遇到标题前两位不是纯数字的特殊情况(虽然你现在说不会出现),可以加个异常处理避免程序崩溃:

try:
    title_number = int(submission.title[:2])
except ValueError:
    # 标题前两位不是数字,直接跳过该帖子
    continue

内容的提问来源于stack exchange,提问作者GhostCat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 14:07:44