How to get users ID, who favorite specific tweet?

Мне потребовалось узнать через Twitter API кто лайкал тот или иной твит. Однако, несколько раз перечитав документацию, я не обнаружил такой очевидной и необходимой возможности. Тогда я предположил, что это делается как-то опосредованно и начал гуглить. К моему великому разочарованию, выяснилось, что Twitter не предоставляет такой возможности ни через API, ни как-то иначе, хотя спрос очень велик. Интернет-пользователи предположили, что это слишком ценная информация, с помощью которой можно проводить разного рода анализ и которой Twitter никогда не поделится. Печально! Но мне, тем не менее, удалось частично решить проблему. Я научился получать такой список, то только из первых 25 человек, кто лайкнул (ранее это называлось «добавил в избранное») определённый твит. Согласитесь, что это лучше, чем совсем ничего. А для моих задач, так и вообще оказалось достаточно, так как я анализирую не слишком популярные твиты, которые редко кто лайкает свыше 25 раз.

Я обратил внимание, что заходя в Twitter через браузер, я таки могу посмотреть список лайкнувших, не всех, конечно, а только первых 25 человек. Я проанализировал запрос браузера и ответ сайта, и сделал то же самое, но на Python. И вот, что у меня получилось:

import requests
from bs4 import BeautifulSoup

STATUS_ID = 935591323964452865  # Номер интересующего твита
url = 'https://twitter.com/i/activity/favorited_popup?id=' + str(STATUS_ID)
response = requests.get(url)
html_users = response.json().get('htmlUsers')
soup = BeautifulSoup(html_users, "html.parser")
users = soup.find_all('div', class_='account js-actionable-user js-profile-popup-actionable ')
for user in users:
    a = user.get('data-user-id')  # Идентификатор пользователя
    b = user.get('data-name')  # Отображаемое имя пользователя
    c = user.get('data-screen-name')  # Зарегистрированный ник пользователя
    print(a + ': ' + b + ' (@' + c + ')')

После запуска этого кода на экран будут выведены первые 25 пользователей лайкнувших твит, номер которого задан в константе STATUS_ID:


349771130: Jesús Sanabria Martos (@mrmartos)
962381673634480128: Darrelyn (@Darrelyn12)
795037326577717248: Daniel Silva 👠 (@Daniellsillva20)
945972103429414913: Iván. Toala (@IvnToala1)
2379258727: ❤️✨ARIA | BLAKE✨❤️ (@TheAriaBlake)
952753272: Liss♢Mercado (@lisethmerkdo)
851954819699007489: poc (@spanishLulaby)
3269382655: i could’ve dropped my croissant (@reneekalee)
1027127156: Alberto Villamar (@al_villamar)
1322826428: adrianah23 (@adrianahuff23)
521158789: nry (@hernandezatreyu)
3821490633: S. Frances Tiger (@SFrancesTiger)
974695248197771265: 罗欣雨 (@luoxinyu0)
870872736469590016: christo.tsakiri@gmai (@ChristoTsakiri)
947357203681431552: AD Jones@JESUS license777 (@AjSlick007)
193148406: Guillermo Jimenez (@J1mEn3z)
2301341356: Alyx Kahl (@AlyxKahl)
978106588534857729: Mohammas (@Mohamma97950826)
979010404293554176: Shibsankar Das (@Shibsan39266625)
2741494735: DJA'AR👑 (@DJAARMusic)
2861650798: Stephen Braverman (@stephenbraverm1)
1613852833: Kev__Lennon (@ShadyDavila)
907429808824573953: Luís (@luissgusstt)
4393419136: Xoxo, Zaah 👒 (@Zaah_carvalho)
315234146: Sherry (@SherrySherry274)

Всё делается без авторизации и без участия Twitter-API. Надеюсь, что это кому-то пригодится.

UPDATE 23.05.2018

21 мая 2018 в промежутке между 20:20 (ещё работало) и 21:00 (уже не работало) по Московскому времени Twitter внёс изменения и список лайкнувших перестал отдаваться по указанному выше методу. Потребовалось внести корректировку, чтобы всё заработало. А именно теперь скрипту требуется прикидываться браузером и передавать специальные заголовки, в противном случае сайт рапортует об ошибке 404.

Итак, чтобы всё заработало вновь необходимо заменить вот эту строчку:

response = requests.get(url)

Вот на такую конструкцию:

hdr = {"Host": "twitter.com",
       "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0",
       "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
       "Accept-Language": "ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3",
       "Accept-Encoding": "gzip, deflate, br",
       "Referer": url,
       "Connection": "keep-alive",
       "Upgrade-Insecure-Requests": "1",
       "Pragma": "no-cache",
       "Cache-Control": "no-cache"}
response = requests.get(url, headers=hdr)

14 thoughts on “How to get users ID, who favorite specific tweet?

  1. Ryan
    #

    Спасибо большое! это избавило меня от большой боли и усилий, пытаясь исправить это, так как они начали требовать заголовок User-Agent пару дней назад: https://github.com/snarfed/bridgy/issues/823 . (похоже, что это единственный заголовок, который имеет значение.) Я очень ценю, что вы его опубликовали!

    (извинения за перевод, я использовал Google Translate. 😁)

    1. CityAceE Автор сообщения
      #

      Thanks for your comment! I’ve answered you on GitHub.

  2. Tolyafieks
    #

    В прошлом месяце платформа qiwi ввела нововведения в систему безопасности и дополнительных проверок платежей.
    Это сказалось на большом количестве пользователей системы и не в лучшую сторону.
    Многие пользователи системы вынуждены были ожидать проведения платежа до двух суток в виду дополнительных проверок СБ.
    На проверку уходило 60процентов транзакций в период с декабря 2019 по январь 2020.
    Такая проблема вычеркивает платформу из определения «мгновенной» и ставит под сомнение удобство ее использования.
    Клиенты начали активно переходить на другие платформы, так как у многих имеется нужда в тысяче и более транзакций в сутки.
    Таким образом сервис затрудняет нормальную работу клиентов.
    Актуальная информация предоставлена информ агентством Петропавловска-Камчатского
    Ждем конца реформации системы безопасности, а дальше нужно будет делать какие то выводы и предпринимать какие то конкретные решения в отношении данной платформы.
    У кого какие мысли в отношении других платежных систем, делитесь.

  3. TaraPrize
    #

    Стоимость BTC взлетела на 5% за последние 24 часа, впервые за 365 дней подняв BTC до уровня выше 12000 долларов.
    Bitcoin еще далек от своего рекордного максимума в 20000 $, на котором он остановился в конце 2017 года, но восстановление является признаком того, что BTC все чаще становится убежищем активов.
    Во времена экономической неопределенности инвесторы, обычно, обращаются к активам с конкретным предложением, таким как золото, так как они не зависят от инфляции, такие как компенсация количеством.
    Торги по биткоинам в Южной Америке взлетает до небес на фоне эпидемии Covid-19
    Ограниченное количественное-во валюты — в обращении будет лишь 21 млн btc — означает, что он имеет аналогичные свойства и иногда определяется как «золотая цифра».
    Ранее в этом месяце компания бизнес-аналитики MicroStrategy объявила, что стала первой компанией, оформленной на Nasdaq, которая приняла BTC в роли главного резервного актива казначейства, использовав целых 250 миллионов долларов из своего капитала для инвестирования в BTC.
    «Вложения определяют нашу веру в то, что BTC, как наиболее широко используемая в мире криптовалюта, является надежным средством сбережения и заманчивым инвестиционным активом с более долгим ожиданием, чем хранение наличных денег», — сказал в своем заявлении генеральный директор MicroStrategy Майкл Сэйлор.
    С тех пор акции MicroStrategy выросли более чем на 20% после этого заявления.
    В начале 2009 года был создан генезисный блок BTC. этого случилось меньше, чем через 12 месяцев после того, как создатель псевдонима Сатоши Накамото подробно описал криптовалюту в публикации под названием «Биткойн: одноранговая система электронных денег».
    «Поскольку интенсивный подъем биткойна продолжается, нужно знать, что высокая цена BTC иногда может создавать психологический барьер для розничного инвестора», — сказал The Independent Саймон Петерс из онлайн-инвестиционной платформы.
    Данные факты предоставил портал newrush.site

  4. Howardfus
    #

    Also, the rumours of her supposed fallout with Edward are becoming increasingly clear not only because she still hasn’t featured him on her newly hyped Youtube channel, but throughout her near-hourlong interview with Adut there wasn’t a single mention of his name. Whereas she’s falling over herself to congratulate Anna at every opportunity. Isaac’s brand of basic isn’t necessarily bad. Jacquemus reminds me a lot of Isaac. Both brands are effervescent, joyful and full of sunniness but ultimately very basic. I can see why women gravitate toward such uncomplicated and pretty designs at these uncertain times (Jacquemus men’s however— JC Penny/Tommy Banana realness…)
    continuation here >>> https://www.pinterest.com/sapsanum/dress/
    Free shipping world wide. Lastly, use your scissors and cut along the line to create your no sew off the shoulder t-shirt. 5/5(1). Women’s Shirts and Blouses. Shop in is assuredly a relaxing experience because your wedding dresses can be ordered in an assortment of fabrics, such as lace, feathers and satin chiffon, which /5(K). Skip to main content.

  5. StephenDib
    #

    Римские свечи. Это картонная гильза, которая имеет в нижней части глиняную заглушку, а в верхней — фитиль. Залпы производятся поочередно, сопровождаются зрительными и звуковыми эффектами. В разных модификациях они разные: мерцание, искры, салют, свист.

    Жители Ставрополя, в свой черед других регионов России, очень любят запускать красочные салюты. Фейерверки в Ставрополь доставляются транспортными компаниями. Это надежно, удобно равным образом со вкусом!

    Ваше сообщение успешно отправлено. В ближайшее время с Вами свяжется наш специалист

    Новогодние фейерверки, пиротехнические шоу… Новогодние фейерверки, пиротехнические шоу — отзывы о компаниях

    Батареи салютов. Несколько салютов, соединенные вместе. Их можно запускать по одному или сразу по несколько штук.

    Сообщить администрации сайта об ошибке, добавить информацию

    Оборудование для шаров Компрессоры вдобавок насосы Наклейки для шаров/коробок Ленты для шаров
    фестивальный комитет биение сердец
    Самый большой выбор фейерверков хлопушек петард ракетниц равным образом все по цене ниже на смену по городу реально ниже!!!..

    Жизнь вследствие городом короче привлекательна. Среди преимуществ выделяют как и чистоту воздуха, и отсутствие соседей.

    Название ЦенаХиты продажОценка покупателейДата добавленияВ наличии

    Петарды… Дневные фейерверки также факела… Русская пиротехника

    Подарки Игрушки-антистресс Косметички Кошельки

    Производственные площадки в г.Барнауле, г.Шахты (Ростовская обл), г.Киреевске (…

    Пиротехника оптом… Профессиональные салюты… Салюты в Ростове-перманентно-Дону для вашего праздника.

  6. StephenDib
    #

    Фонтаны Средние фонтаны Большие фонтаны Фонтаны — дым

    Мастерски жонглируют разными шоу-программами и ничего не роняют!

    Вас приведет в радость представленное многообразие решений: от бюджетных за некоторое время до самых дорогих!

    Новогодние фейерверки, пиротехнические шоу… Новогодние фейерверки, пиротехнические шоу — отзывы о компаниях

    Отзывы клиентов можно почитать всегда Яндекс.Маркете или в нашей группе Вконтакте.

    Войти Логин Пароль Запомнить меня

    Товары для праздника Бумажные гирлянды Конверты для денег Для праздничного стола
    фонтан грибная семейка
    Купить салют, фейерверк, пиротехнику интернет магазин Салюты Краснодара Официальный сайт

    Пиротехника сегодня — это огромное разнообразие салютов также фейерверков, сопровождающихся тысячами светящихся элементов в виде падающих искр, шаров, звезд, снежных хлопьев, цветов в окружении свиста, треска, хлопков.

    Сообщить администрации сайта об ошибке, добавить информацию

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

    Укажите Ваше имя и номер телефона, также наш менеджер свяжется с Вами в ближайшее дата.

    Сообщить администрации сайта об ошибке, добавить информацию

    Гелий как и оборудование для баллонов Гелий вдобавок баллоны Оборудование для баллонов

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Защита от спама * Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.