如何使用 snscrape 根据特定查询抓取推特用户

问题描述 投票:0回答:1

我正在使用

snscrape
来抓取在他们的生物中具有特定关键字的用户。
我现在使用的算法如下:

  1. 搜索包含特定单词的推文
  2. 提取发这条推文的用户
  3. 根据想要的关键字过滤提取的用户简介(如果用户简介包含关键字,则将该用户附加到数据框中,否则丢弃该用户)。

现在我想知道有没有一种方法可以根据他们的生物立即搜索用户而不是我现在正在做的,即模拟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 高级搜索的屏幕截图。

python twitter
1个回答
0
投票

查看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 北美团队的问候)

© www.soinside.com 2019 - 2024. All rights reserved.