我正在使用
snscrape
来抓取在他们的生物中具有特定关键字的用户。现在我想知道有没有一种方法可以根据他们的生物立即搜索用户而不是我现在正在做的,即模拟Twitter网页的高级搜索功能?
我查看了
snscrape
docs,但所有与用户打交道的类似乎只与特定用户打交道,而不是根据某些查询搜索用户。
这是我目前正在运行的代码
import snscrape.modules.twitter as sntwt
query = "co founder (CEO OR Congrees OR CTO) lang:en"
tweets = []
limit = 5000
# instead of searching for tweets I want to search for users
for tweet in sntwt.TwitterSearchScraper(query).get_items():
print(vars(tweet))
print('\n\n\n\n')
# some code that filters the users
最后是模拟我想要的行为的 Twitter 高级搜索的屏幕截图。
查看https://github.com/JustAnotherArchivist/snscrape/issues/263。在撰写本文时,这仍然是一个悬而未决的问题,但 JustAnotherArchivist(存储库所有者)似乎在几周前提交了一个允许此功能的更新(它可能尚未记录,或者可能不可靠)。
我认为这需要 snscrape 的开发者版本。所以如果你还没有安装/升级它(来自Medium文章):
$ pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git
这应该允许“--user”标志工作(我从命令行使用 snscrape;不确定 Python 包装器)。例如:
$ snscrape --jsonl --max-results 10 twitter-search --user "go bananas since:2022-12-31" > out_file.json
这似乎是在用户对象的任何地方搜索查询字符串“go bananas”。这将返回用户对象,例如: 'username': 'gobananagoband' 和 'displayname': 'Go Banana Go!'它还会返回一个用户对象,其中包含: 'description':“当游戏进入 BANANAS 时,我们会为您提供大量服务。提示?@回复或 gmail 上的 bananasalert。” (据我所知,'description'、'rawDescription' 和 'renderedDescription' 都是用户简介。)
我不确定你是否可以选择“描述”。我还没有尝试太多。
这确实支持其他一些运算符/限定符。例如,地理定位(来自 list;距离 Twitter 总部 100 公里以内):
$ snscrape --jsonl --max-results 10 twitter-search --user "elephant geocode:37.7,-122.4,100km lang:eng since:2022-12-31" > out_file.json
(来自 Omdena 北美团队的问候)