在Twitter API中使用正则表达式

10 投票
2 回答
7247 浏览
提问于 2025-04-18 04:44

我正在使用Python的Tweepy库来搜索推文。我想知道,是否可以用正则表达式来搜索推文。

我使用的代码如下:

query = 'ARNOLD or SYLVESTER'     
for tweet in tweepy.Cursor(api.search,
                            query,
                            count=100,
                            result_type="recent",
                            include_entities=True,
                            lang="en").items():

举个例子,我能否搜索所有包含“ARNOLD”或“SYLVESTER”(全大写/单个单词)的推文,并忽略其他所有推文。

目前,我是在获取到所有包含Arnold或Sylvester的推文后,再处理这些推文,检查它们是否都是大写字母。我在想,这个能不能直接通过API搜索来实现。

谢谢

2 个回答

5

现在,Twitter API 文档中有一个完整的可用搜索操作符列表。

https://developer.twitter.com/en/docs/tweets/rules-and-filtering/overview/standard-operators

我无法对原始回答进行评论,所以觉得这对未来通过谷歌访问的朋友们会有帮助,因为在 Twitter 文档网站上不容易找到这些信息。

16

很遗憾,Twitter不支持用正则表达式来搜索推文,这意味着你需要在获取结果后再进行处理。其实Twitter并没有官方的说明来说明这一点,但所有使用Twitter搜索API的人,包括我自己,都会用正则表达式对推文进行后处理以提取有用的信息。由于没有官方的明确说明,我尝试过各种不同的正则表达式来进行搜索,但都没有成功。根据Twitter搜索API的说明,搜索查询必须是:

一个最多1,000个字符的UTF-8编码的URL搜索查询,包括操作符。查询的复杂性也可能会限制。

所有的查询都是UTF-8编码的,显然也是以这种方式进行搜索。如果能在API搜索调用中指定一个正则表达式参数就好了,但实际上并没有。

这样做的原因可能是,Twitter在所有推文上运行正则搜索会增加额外的处理成本。

撰写回答