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

无Twitter开发者Elevated权限 仅通过推文ID获取推文文本方案咨询

失败原因说明

  • 你之前调用的tweepy API和statuses/show接口都是Twitter v1.1版本的接口,该类接口需要Elevated权限才能调用,Essential权限不支持访问,所以会报错。
  • 直接用requests爬取静态页面失败的原因是Twitter页面采用前端动态渲染,静态请求返回的只是页面框架,实际推文内容需要JavaScript执行后才会加载,所以拿不到目标文本。

可行方案

方案1:使用Twitter API v2 合规接口(推荐)

Twitter API v2的「推文查询」端点对Essential权限开放,无需申请Elevated权限即可调用,公开推文的文本内容都可以正常获取,调用符合平台规则,不会有账号风险。

首先升级tweepy到最新版本:
pip install tweepy --upgrade

调用代码示例:

import tweepy

# 替换为你的Twitter开发者后台生成的Bearer Token
BEARER_TOKEN = "替换为你自己的Bearer Token"
client = tweepy.Client(bearer_token=BEARER_TOKEN)

# 填写目标推文ID
tweet_id = 1272771459249844224
# 发起查询,指定返回text字段
resp = client.get_tweet(id=tweet_id, tweet_fields=["text"])

if resp.data:
    # 输出推文文本
    print(resp.data.text)
else:
    print("无法获取推文,可能推文已被删除、设为私密或ID有误")

说明:Essential权限默认每个月有50万次推文读取额度,普通使用场景完全足够。


方案2:无头浏览器动态爬虫

如果接口额度不够用,可以用无头浏览器模拟真实用户访问,加载动态渲染的页面内容获取推文文本。

首先安装依赖:

pip install playwright
playwright install chromium

调用代码示例:

from playwright.sync_api import sync_playwright
import time
import random

def fetch_tweet_by_id(tweet_id):
    with sync_playwright() as p:
        # 启动无头模式的Chrome浏览器
        browser = p.chromium.launch(headless=True)
        # 模拟真实浏览器UA,避免被反爬识别
        page = browser.new_page(
            user_agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
        )
        # 通用推文页链接,不需要提前知道发布者用户名
        page.goto(f"https://twitter.com/i/web/status/{tweet_id}", wait_until="networkidle")
        # 随机延迟,降低反爬触发概率
        time.sleep(random.uniform(1, 2))
        try:
            # 定位推文文本元素
            text_element = page.wait_for_selector('div[data-testid="tweetText"]', timeout=10000)
            tweet_content = text_element.inner_text()
        except Exception as e:
            tweet_content = "获取失败,可能触发反爬或推文不存在"
        browser.close()
        return tweet_content

# 测试调用
print(fetch_tweet_by_id(1272771459249844224))

说明:不要高频发起请求,可根据需求添加代理池、随机请求间隔降低被封禁的概率。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:36:03