Получение данных из Twitter на лету

Наша компания пытается прочитать во всех живых потоках данных, введенных случайными пользователями, то есть случайный пользователь отправляет твит со словами "ABC company".

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

Какой лучший способ сделать это? И если вы сделали это раньше, не могли бы вы поделиться своим сценарием? Я считаю, что самый простой способ - использовать оставленный работающий скрипт ruby ​​/python, но мое понимание ruby ​​/python в лучшем случае ограничено.

Пожалуйста, помогите?

1 ответ

Вот минимум:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import twitter
from threading import *
from os import _exit, urandom
from time import sleep
from logger import *
import unicodedata

## Based on: https://github.com/sixohsix/twitter

class twitt(Thread):
    def __init__(self, tags = None, *args, **kwargs):
        self.consumer_key = '...' 
        self.consumer_secret = '...'
        self.access_key = '...'
        self.access_secret = '...'

        self.encoding = 'iso-8859-15'

        self.args = args
        self.kwargs = kwargs

        self.searchapi = twitter.Twitter(domain="search.twitter.com").search

        Thread.__init__(self)
        self.start()

    def search(self, tag):
        try:
            return self.searchapi(q=tag)['results']
        except:
            return {}

    def run(self):
        while 1:
            sleep(3)

Чтобы использовать это, сделайте что-то вроде:

if __name__ == "__main__":
    t = twitt()
    print t.search('#DHSupport')
    t.alive = False

Примечание. Единственная причина, по которой это связано с многопоточностью, заключается в том, что это просто кусок кода, который я заложил для других проектов, он дает вам представление о том, как работать с API и, возможно, создать фоновый сервис для извлечения результатов поиска в Twitter. В моем исходном коде много дерьма, поэтому структура может выглядеть немного странно. Обратите внимание, что вам на самом деле не нужны customer_keys и т. Д. Для простого поиска, но вам потребуется вход в систему OAuth для дополнительных функций, таких как публикация или проверка сообщений.

Единственное, что вам действительно нужно:

import twitter
print twitter.Twitter(domain="search.twitter.com").search(q='#hashtag')['results']
Другие вопросы по тегам