0

我有一个推文 ID 列表 ( tids.csv),我需要收集所有转推。由于我们无法在 v2 API 中直接检索特定推文的转推,因此我必须获取特定用户(我的 tid 文件中推文的用户)的所有转推,然后过滤掉我们感兴趣的特定推文的转推in. 这是我用来获取所有用户转推的命令:

while read line; do twarc2 search --archive --start-time "..." --end-time "..." "retweets_of:$line"; done < usernames.txt > usersRetweets.jsonl

其中 usernames.txt 是一个包含用户名列表的文本文件。

注意:我使用的是 v2 API,因为 v1 API 的限制是只能检索 100 条最近的转推,但我需要所有转推。

问题:

~17 thousand unique usernames我的输入文本文件中,我发现获取这么多用户的所有转推需要很长时间和很大的空间。例如,只为约 600 名用户收集转推需要几天时间和约 5 GB 的空间。

问题:就时间和空间而言,获得所有转发的最有效方法是什么?

上面的命令检索每个用户的所有推文的所有转推,而我只需要我的数据集 (tids.csv) 中特定推文的所有转推。

可能的解决方案:这是我想做的事情:

对于 username.txt 中的每个用户:

  1. 检索用户的所有转推(将开始时间和结束时间设置为我感兴趣的时间范围)
  2. 仅保留在文件中找到其源推文 ID 的转推,tid.csv并删除其余部分。这可以通过将referenced_tweets字段中的 id 与 tid.csv 文件中的 id 匹配来完成)
  3. 对于每个剩余的转推,只从字典中提取我想要的 json 字段。
  4. 将字典写入文件

有人可以帮我在 Python 中做到这一点(使用 twarc2 作为库)吗?即使有一个示例/教程开始,我也很感激..

谢谢,

4

0 回答 0