Люди, используемые в закладки твитов с использованием такой функции в Twitter. Позже они представили функцию закладок, которая поможет вам сохранить твиты в частном порядке. И теперь вы сэкономили тысячи твитов, и вы не можете позволить себе их очистить.
Как насчет безопасно экспортировать эти закладки в файл. Вы можете использовать его, как вам нравится – может быть, в веб -приложении. Следует отметить, что Twitter Не Предоставьте API для доступа к закладкам. Итак, нам, возможно, придется сделать некоторые вещи вручную здесь.
Я собираюсь показать вам, как извлечь ссылки на закладку, а также в нескольких строках кода Python.
Шаг 1
Хранить полезную нагрузку в Twitter в файле JSON
Альтернатива этого шага использует Почтовый клиент Отказ Вы можете попробовать это сначала, вот ссылка в блог, который позволяет отправлять запрос И это функция загрузки позволяет загружать ответ в клике.
Если у вас нет установки, мы можем вернуться к копированию вставки отклика от нашего старого доброй браузера devtools.
- Откройте Twitter Web и перейдите на страницу закладок
- Открыть инструменты Dev и перейдите на вкладку Network
- Очистите сетевые журналы и выберите XHR
- Применить фильтр как “Bookmark”
- Обновить страницу закладок Twitter
Вы увидите, что некоторые вызовы API сделаны как Bookmark.json
как под изображением. Вызов API подлежит изменению.
Обновление: В настоящее время /Закладки
используется. Twitter недавно начал использовать GraphQL, чтобы получить закладки.
Если у вас есть тонны закладок, вам может придеться прокрутить до конца, чтобы получить все запросы на пагинацию.
- После достижения конца. Выберите каждый запрос и скопируйте вставку ответа, полученного на вкладке «Ответ», как показано на изображении выше.
- Сохраните каждый объект ответа с .json расширение.
Шаг 2
Получение текста и ссылки в закладки твитов
- Как только вы сохранили файлы JSON, поставьте их в папку.
Теперь нам просто нужно написать Python Script Это позволит нам ссылки на закладки и текст Tweet!
- Чтение файлов JSON из папки
import json import glob # using glob to read all files in the folder files = [file for file in glob.glob("JSONBookmarks/*")] for file_name in files: print(file_name) with open(file_name) as bk: data = json.load(bk) # reads json data all_bookmarks.append(data)
Здесь Jsanbookmarks
это имя папки. Глобус ()
берет путь папки, чтобы прочитать файлы. /*
означает все файлы.
Полезная нагрузка в Твиттере явно не имеет ссылки на твиты закладок.
Он предоставляет два основных объекта нашего использования с помощью клавиш:
- твиты
- пользователи
Нам придется использовать эти данные в полезной нагрузке, чтобы построить URL -адрес твита.
# Function to construct bookmarked tweet url def constructUrl(tweet_id, username): return "https://twitter.com/" + username + "/status/" + tweet_id
Я использовал Deeb_get
Способ получения вложенных объектов.
# Method to get value of nested dictionary def deep_get(dictionary, keys, default=None): return functools.reduce(lambda d, key: d.get(key, default) if isinstance(d, dict) else default, keys.split("."), dictionary)
Теперь окончательный код, который проходит через все твиты, чтобы получить данные и записи в Markdown.
Обновление: Эта логика подлежит изменению в соответствии с закладками в Twitter API!
# saving in markdown file, if no file exists using '+' creates one md_file = open("bookmarks.md", "w+") # Run a loop through all_bookmarks for data in all_bookmarks: instructions_list = deep_get(data, "data.bookmark_timeline.timeline.instructions") tweet_entries_list = deep_get(instructions_list[0], "entries") for tweet_entry in tweet_entries_list: result = deep_get(tweet_entry, "content.itemContent.tweet_results.result") username = deep_get(result, "core.user.legacy.screen_name") text = deep_get(result, "legacy.full_text") tweet_id = deep_get(result, "rest_id") if tweet_id == None or username == None or text == None: continue text = formatText(text) url = constructUrl(tweet_id, username) bookmarked_tweet = "\n- " + text + "\n" + "\t - " + url md_file.write(bookmarked_tweet)
Окончательный выход будет выглядеть так:
Я отформатировал его, как хотел, вы тоже можете сделать что-то еще. Вот весь код для вас, чтобы ссылаться на это суть . Гист будет обновлен новой логикой, если наблюдаются какие-либо изменения от API Twitter.
Оригинал: “https://dev.to/divyajyotiuk/exporting-your-twitter-bookmarks-in-markdown-file-19bj”