如何用Twitter API v2仅拉取单条最新推文?Selenium耗时疑问
解决方案
一、用Twitter API v2仅拉取最新一条推文
你当前使用的search_recent_tweets接口确实限制了max_results最小为10,要实现只拉取目标账号的最新一条推文,建议改用用户时间线接口get_users_tweets,这个接口支持将max_results设为1,且直接针对目标用户的推文列表查询,更精准也更节省API额度。
步骤如下:
- 先通过用户名获取用户ID(该接口需要用户ID作为参数)
- 调用
get_users_tweets接口,指定max_results=1(默认按创建时间降序排序,即最新推文优先)
修改后的代码示例:
import tweepy client = tweepy.Client(bearer_token=API_BEARER) # 通过用户名获取用户ID user = client.get_user(username=username) user_id = user.data.id # 拉取该用户的最新1条推文,可按需排除转发/回复 tweets = client.get_users_tweets( id=user_id, tweet_fields=['context_annotations', 'created_at'], max_results=1, exclude=['retweets', 'replies'] # 可选,仅需原创推文时保留 ) # 提取并处理最新推文 if tweets.data: latest_tweet = tweets.data[0] print(latest_tweet.text, latest_tweet.created_at)
二、Selenium/BeautifulSoup拉取耗时20秒是否正常?
这种耗时属于正常范畴,原因如下:
- Selenium需要完整加载Twitter网页的所有资源(包括JS渲染内容、图片、广告、追踪脚本等),Twitter网页本身加载速度不算快,加上反爬机制可能会增加延迟
- Twitter对网页端非API请求有严格的限流和反爬策略,可能会故意减慢响应速度,甚至触发验证码,进一步拉长请求时间
如果想用网页抓取方式提速,可尝试:
- 在Selenium中禁用图片、CSS和非必要JS加载,减少资源请求量
- 但整体来说,官方API仍是高频请求场景下最稳定可靠的方案
内容的提问来源于stack exchange,提问作者rapha21
相关产品推荐
相关产品推荐

