CoderCastrov logo
CoderCastrov
Твиттер

Как экспортировать список пользователей, на которых вы подписаны в Twitter, в файл CSV

Как экспортировать список пользователей, на которых вы подписаны в Twitter, в файл CSV
просмотров
3 мин чтение
#Твиттер

Ищете способ экспортировать список пользователей, на которых вы подписаны в Twitter, в файл CSV? В этой статье мы покажем вам, как сделать это с помощью Node.js и Twitter API.

Сначала вам нужно установить пакеты twitter и csv-writer. Вы можете сделать это, запустив команду npm install twitter csv-writer в терминале.

const Twitter = require('twitter');
const createCsvWriter = require('csv-writer').createObjectCsvWriter;
const fs = require('fs');

Затем настройте клиент Twitter API, создав новый экземпляр класса Twitter из пакета twitter. Вам нужно будет указать ключ потребителя, секрет потребителя, ключ токена доступа и секрет токена доступа в качестве параметров при создании клиента.

// Настройка клиента Twitter API
const client = new Twitter({
  // consumer_key: 'your_consumer_key',
  // consumer_secret: 'your_consumer_secret',
  // access_token_key: 'your_access_token_key',
  // access_token_secret: 'your_access_token_secret'
});

После настройки клиента Twitter API настройте запись CSV с помощью метода createObjectCsvWriter из пакета csv-writer. Укажите путь, где вы хотите сохранить файл CSV, и определите заголовки для каждого столбца в файле CSV.

// Настройка записи CSV
const csvWriter = createCsvWriter({
  path: 'following.csv',
  header: [
    {id: 'name', title: 'Имя'},
    {id: 'screen_name', title: 'Имя пользователя'},
    {id: 'description', title: 'Описание'},
    {id: 'location', title: 'Местоположение'},
    {id: 'url', title: 'URL'},
    {id: 'followers_count', title: 'Подписчики'},
    {id: 'friends_count', title: 'Подписки'},
    {id: 'created_at', title: 'Дата регистрации'},
    {id: 'verified', title: 'Проверенный'}
  ]
});

Теперь, когда все настроено, пришло время получить список пользователей, на которых вы подписаны в Twitter. Фрагмент кода использует рекурсивную функцию с названием getFollowing, которая получает по 200 пользователей за раз (максимальное значение, разрешенное Twitter API), пока все страницы результатов не будут получены.

Функция использует метод client.get из клиента Twitter API для отправки GET-запроса к конечной точке 'friends/list' с параметрами, указывающими, что должно быть возвращено 200 пользователей на страницу, и предоставляющими значение курсора для пагинации. Курсор изначально установлен на -1 (первая страница) и обновляется с каждым последующим вызовом для получения дополнительных страниц результатов.

// Получение списка пользователей, на которых вы подписаны, и запись в CSV
let cursor = -1; // инициализация курсора на первой странице
let followingData = [];

Данные, возвращаемые каждым вызовом, добавляются в массив с названием followingData, который хранит объекты, представляющие каждого пользователя в вашем списке подписок. Каждый объект содержит свойства, такие как имя, имя пользователя, описание, местоположение, URL, количество подписчиков, количество друзей (т.е. количество подписок), дата/время регистрации (т.е. когда они присоединились к Twitter) и проверено ли их аккаунт.

function getFollowing() {
  client.get('friends/list', { count: 200, cursor: cursor }, function(error, following, response) {
    if (error) throw error;
    followingData = followingData.concat(following.users.map(user => ({
      name: user.name,
      screen_name: user.screen_name,
      description: user.description,
      location: user.location,
      url: user.url,
      followers_count: user.followers_count,
      friends_count: user.friends_count,
      created_at: user.created_at,
      verified: user.verified
    })));
    // Проверка, есть ли еще страницы для получения
    if (following.next_cursor_str != '0') {
      cursor = following.next_cursor_str;
      getFollowing();
    } else {
      // Запись данных о подписках в CSV
      csvWriter.writeRecords(followingData)
        .then(() => console.log('Список подписок загружен в файл following.csv'))
        .catch(error => console.error(error));
    }
  });
}

Как только все страницы результатов будут получены (указывается, когда following.next_cursor_str == '0', что означает, что больше страниц нет), тогда все данные, хранящиеся в массиве followingData, записываются в файл csv с помощью csvWriter.writeRecords(followingData).

getFollowing();

Вот и все! Запустите этот скрипт с помощью команды node в терминале, и вы должны увидеть сообщение "Список подписок загружен в файл following.csv", указывающее на успешную загрузку вашего списка подписок в Twitter в файл csv.

Вот ссылка на полный скрипт:

Следите за новыми трюками и советами!

xoraus - Обзор

В настоящее время вы не можете выполнить это действие. Вы вошли в систему в другой вкладке или окне. Вы вышли из системы в другой вкладке или...

github.com