在Twitter API中使用正则表达式
我正在使用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在所有推文上运行正则搜索会增加额外的处理成本。