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

Python中不使用Selenium通过关键词获取所有推文的方法有哪些?

Python 无Selenium获取关键词相关推文的高效方案
  • 方案1:使用Twitter官方API的Python封装库
    官方API的速率比爬虫高很多,合规性更好,Python端常用Tweepy库,你可以申请开发者权限后,直接调用搜索接口按关键词拉取推文,支持拉取历史和实时数据,单请求最多可以返回100条,速率限制远高于模拟浏览器的爬取效率。
    基础使用示例如下:
    import tweepy
    
    # 填入你申请的开发者密钥
    bearer_token = "你的Bearer Token"
    client = tweepy.Client(bearer_token=bearer_token)
    
    # 按关键词搜索推文,max_results可调整,单请求最高100
    response = client.search_recent_tweets(query="你的关键词", max_results=100, tweet_fields=["created_at", "author_id"])
    for tweet in response.data:
        print(tweet.id, tweet.created_at, tweet.text)
    
    如果需要拉取超过7天的历史推文,需要申请学术研究权限的API密钥。
  • 方案2:使用第三方非官方的Twitter数据封装库
    如果你无法申请官方开发者权限,可以使用无需身份验证的第三方Python库,这类库通过解析公开的Twitter搜索页面接口实现数据抓取,不需要模拟浏览器,速度是Selenium的5-10倍。常用的库为snscrape,不需要申请密钥,直接调用即可。
    基础使用示例如下:
    import snscrape.modules.twitter as sntwitter
    
    tweets = []
    # 关键词、时间范围可以自行调整
    query = "你的关键词 since:2023-01-01 until:2023-12-31"
    for i, tweet in enumerate(sntwitter.TwitterSearchScraper(query).get_items()):
        # 限制爬取数量,去掉该判断则爬取所有符合条件的推文
        if i > 1000:
            break
        tweets.append([tweet.date, tweet.id, tweet.content, tweet.user.username])
    
    使用这类非官方库要控制请求频率,避免被IP限流。
  • 额外优化建议
    如果你需要大规模爬取,可以搭配IP代理池使用,同时设置合理的请求间隔,进一步提升稳定性。爬取到的数据建议直接存入数据库或者本地文件,避免内存溢出。

内容的提问来源于stack exchange,提问作者Yusuf Özkan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 09:27:04