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

如何使用snscrape仅过滤英文Twitter推文?

仅筛选英文Cyberpunk推文的两种解决方案

方法1:通过搜索Query直接限定语言(推荐)

Twitter搜索支持lang:en语法,可直接指定只返回英文推文。这种方式效率更高,因为Twitter会在搜索阶段就过滤非英文内容,无需后续额外处理。

修改后的代码如下:

import snscrape.modules.twitter as sntwitter
import pandas as pd

# 在Query中添加lang:en限定英文内容
query = "Cyberpunk lang:en"
tweets = []
limit = 400

for tweet in sntwitter.TwitterSearchScraper(query).get_items():
    if len(tweets) == limit:
        break
    tweets.append([tweet.date, tweet.user.username, tweet.content])

df = pd.DataFrame(tweets, columns=['Date', 'User', 'Tweet'])
df.to_csv('test.csv', index=False)

方法2:获取推文后通过lang属性过滤

如果需要对语言做二次校验,或者Query筛选未生效,可以检查推文对象的lang属性(Twitter自动识别的语言标签),仅当属性值为"en"时才将内容加入列表。

修改后的代码如下:

import snscrape.modules.twitter as sntwitter
import pandas as pd

query = "Cyberpunk"
tweets = []
limit = 400

for tweet in sntwitter.TwitterSearchScraper(query).get_items():
    # 先判断语言是否为英文,再检查数量是否达标
    if tweet.lang == "en" and len(tweets) < limit:
        tweets.append([tweet.date, tweet.user.username, tweet.content])
    if len(tweets) == limit:
        break

df = pd.DataFrame(tweets, columns=['Date', 'User', 'Tweet'])
df.to_csv('test.csv', index=False)

说明:方法1更高效,减少了不必要的数据传输;方法2适合需要额外语言校验的场景,根据需求选择即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 00:10:41