×
Раскрутка твиттер-аккаунтов. Фолловинг, анфолловинг, другие инструменты

Увлекла идея сооружения универсального promotion-комбайна для Твиттера.

Вопрос Получение твиттер-фолловеров в csv

Больше
8 мес. 3 нед. назад #1 от yotson
Возможно ли получить всех твиттер-фолловеров аккаунта в csv-файл? Был бы благодарен за развернутый ответ, впервые по работе возникла такая задача.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
8 мес. 3 нед. назад #2 от serge
Док, вы не уточнили, на каком именно языке программирования / фреймворке ищете решение.
Потому перенес покамест ваш вопрос в актуальную для нас категорию Ruby on Rails, на этом фреймворке задача решается крайне несложно, привожу здесь одно из целого ряда возможных решений.
Источник: github.com/gcba/get_twitter_followers

require 'twitter'
require "csv"


client = Twitter::REST::Client.new do |config|
  config.consumer_key        = "XXX"
  config.consumer_secret     = "XXX"
  config.access_token        = "XXXXXX"
  config.access_token_secret = "XXX"
end


def get_follower_ids(client, user_id)
  follower_ids = []
  next_cursor = -1
  while next_cursor != 0
    cursor = client.follower_ids(user_id, :cursor => next_cursor)
    follower_ids.concat cursor.attrs[:ids]
    next_cursor = cursor.send(:next_cursor)
  end
  follower_ids
end


def get_friend_ids(client, user_id)
  friend_ids = []
  next_cursor = -1
  begin
    while next_cursor != 0
      cursor = client.friend_ids(user_id, :cursor => next_cursor)
      friend_ids.concat cursor.attrs[:ids]
      next_cursor = cursor.send(:next_cursor)
    end
  rescue Twitter::Error::Unauthorized
    []
  end
  friend_ids
end
 

def get_followers_info(client)
  friends = []
  get_follower_ids(client, client.user.id).each_slice(100) do |ids|
    friends.concat client.users(ids)
  end
  friends
end

CSV.open("followers.csv", "w") do |csv|
  followers = get_followers_info(client)
  total = followers.count
  followers.each_with_index do |user, index|
    print "\r#{index}/#{total} completo"
 
    csv << [user.id, user.name, user.description, user.location, user.uri.to_s]
  end
end

А я смогу! - А поглядим! - А я упрямый!

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
8 мес. 3 нед. назад #3 от yotson
попробую, отпишусь.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
1 мес. 7 ч. назад - 1 мес. 7 ч. назад #4 от Aleksej
Собсно, продолжение сабжа Как получить последователей любого Твиттер-аккаунта - в csv файл.
Оформил в виде rails-приложения, которое в любой момент без проблем скачать/клонировать с гитхаба.
Ну, а здесь - короткой строкой.

controller
class TwiController < ApplicationController
  def index

		client = Twitter::REST::Client.new do |config| 
			config.consumer_key = ENV['TWI_KEY']
			config.consumer_secret = ENV['TWI_SECRET']
			config.access_token = ENV['TWI_TOKEN']
			config.access_token_secret = ENV['TWI_TOKEN_SECRET']
		end

#user_id = "adamasmit"
user_id = 1057006381541322752
Twi.get_followers(client, user_id)
      
  end
end

class
class Twi
	def self.get_followers(client, user_id)
		follower_ids = []
		next_cursor = -1
		while next_cursor != 0
			cursor = client.follower_ids(user_id, :cursor => next_cursor)
			follower_ids.concat cursor.attrs[:ids]
			next_cursor = cursor.send(:next_cursor)
		end

		followers = []
		follower_ids.each_slice(100) do |ids|
			followers.concat client.users(ids)
		end

		arr = []
		CSV.open("followers.csv", "w") do |csv|
			total = followers.count
			followers.each_with_index do |user, index|
				puts "\r#{index}/#{total} complete"
				csv << [user.screen_name]
				arr << user.screen_name
			end
		end
				arr.each do |i|
			puts client.update('@' + i + ' How are you?')
			puts "#{Time.now}"
			sleep rand(1..10) 
		end
	end
end

Класс позволяет, после получения перечня фолловеров в файл csv - еще и отправить им всем и каждому по очереди текстовое сообщение, чего делать очень не рекомендую: код приведен сугубо в общеобразовательных целях. В скобках: вероятнее всего, твиттер вам уже подобного и не позволит, он очень серьезно настроен сегодня на борьбу со спамом. Но, тем не менее, в считанные минуты и полностью в автоматическом режиме получить список читателей любого, самого раскрученного и звездного аккаунта вам никто и ничто не помешает.

Более интересным, на мой взгляд, решением набора инструментов для работы с Твиттер -аккаунтом является Twitter-toolkit-onRails, см. в том же GitHub-e. Тулза на сегодняшний день реализует следующие возможности: ответный фолловинг, анфолловинг, постинг твитов и ретвиты, подробнее в блоге ; но, разумеется, с учетом ограничений и лимитов, налагаемых API Twitter.
Последнее редактирование: 1 мес. 7 ч. назад пользователем Aleksej.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.