ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅, ΠΎΡ‡Π΅Π½ΡŒ быстро...
Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ вмСстС Π΄ΠΎ ΠΏΠΎΠ±Π΅Π΄Ρ‹

Π‘ΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΠ΅Ρ‚ΡŒ Twitter, Π΅Π΅ особСнности. 
Twitter Streaming API ΠΈ Π΅Π³ΠΎ возмоТности. 
Π‘Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Twitter Streaming API

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Twitter (Π’Π²ΠΈΠΌΡ‚Ρ‚Π΅Ρ€) — ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΠ΅Ρ‚ΡŒ для ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ (Π΄ΠΎ 140 символов) сообщСниями ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²Π΅Π±-интСрфСйса, SMS, срСдств ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΈΠ»ΠΈ сторонних ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° любого возраста. Для скачивания Ρ‚Π²ΠΈΡ‚Ρ‚ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Ρ‚ΡŒ зарСгистрированным Π² Twitter ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сСти, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (https://apps.twitter.com) ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘ΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΠ΅Ρ‚ΡŒ Twitter, Π΅Π΅ особСнности. Twitter Streaming API ΠΈ Π΅Π³ΠΎ возмоТности. Π‘Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Twitter Streaming API (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Twitter (Π’Π²ΠΈΠΌΡ‚Ρ‚Π΅Ρ€) — ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡΠ΅Ρ‚ΡŒ для ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΌΠΈ (Π΄ΠΎ 140 символов) сообщСниями ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²Π΅Π±-интСрфСйса, SMS, срСдств ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями ΠΈΠ»ΠΈ сторонних ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° любого возраста.

Π’Π²ΠΈΡ‚Ρ‚Ρ‹ — сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ дСлятся ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Twitter.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° Twitter — сообщСния ΠΎ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ событиях ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ быстрСС, Ρ‡Π΅ΠΌ Π² ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… новостных источниках. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Twitter стали Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ источник ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для прогнозирования ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ, Π² Ρ‚ΠΎΠΌ числС ΠΈ Ρ„инансовых. Π•Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ источника ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ‚. Π΅. психологичСской ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ Π² Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Ρ… систСмах, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡŽΡ‚ΡΡ лишь Π½Π° ΠΈΡΡ‚оричСских Π΄Π°Π½Π½Ρ‹Ρ… Ρ†Π΅Π½. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€ΠΈ построСнии Ρ‚ΠΎΡ€Π³ΠΎΠ²ΠΎΠΉ систСмы.

ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠΌ Π°Π½Π°Π»ΠΈΠ·Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ сообщСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Twitter. Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ достаточноС количСство сообщСний Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ для Π°Π½Π°Π»ΠΈΠ·Π°? Для этого для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² прСдусмотрСн инструмСнт API. Π’ Ρ€Π°Π±ΠΎΡ‚Π΅ использовала Twitter Streaming API (https://dev.twitter.com/streaming/overview) ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ GET statuses/sample (https://dev.twitter.com/streaming/reference/get /statuses/sample), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½ прСдоставляСт Π΄ΠΎ 1% ΠΎΡ‚ Π²ΡΠ΅Π³ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° сообщСний Π’Π²ΠΈΡ‚Ρ‚Π΅Ρ€Π°.

Π’Π°ΠΊΠΆΠ΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Twitter API ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ инструмСнт POST statuses/filter https://dev.twitter.com/streaming/reference/post/statuses/filter, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π²ΠΈΡ‚Ρ‚Ρ‹ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словам. Для поиска ΠΏΠΎ ΠΈΡΡ‚оричСским Π΄Π°Π½Π½Ρ‹ΠΌ Π΅ΡΡ‚ΡŒ Twitter REST API (https://dev.twitter.com/rest/public), Π½ΠΎ ΠΎΠ½ Π²Ρ‹Π΄Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ вСсьма ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ объСм сообщСний ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Streaming API. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π±Ρ‹Π» использован ΠΈΠΌΠ΅Π½Π½ΠΎ Twitter Streaming API.

Для упрощСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Twitter API для Ρ€Π°Π·Π½Ρ‹Ρ… языков программирования сущСствуСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π―, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, использовала https://github.com/tweetstream/tweetstream для Python. Π‘Ρ‹Π» написан ΠΊΠΎΠ΄ Π½Π° Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚Π²ΠΈΡ‚Ρ‚Ρ‹ Π² Π‘Π”.

Для скачивания Ρ‚Π²ΠΈΡ‚Ρ‚ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±Ρ‹Ρ‚ΡŒ зарСгистрированным Π² Twitter ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ сСти, ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (https://apps.twitter.com) ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ сСкрСтныС ΠΊΠ»ΡŽΡ‡ΠΈ для доступа ΠΊ Twitter API (ckey, csecret, atoken, asecret).

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сСкрСтных ΠΊΠ»ΡŽΡ‡Π΅ΠΉ для доступа ΠΊ Twitter API.

Рис. 1 ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сСкрСтных ΠΊΠ»ΡŽΡ‡Π΅ΠΉ для доступа ΠΊ Twitter API

НиТС прСдставлСн Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π½Π° Python, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΠ½Π»Π°ΠΉ Π΄ΠΎ 1% сообщСний ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Twitter, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ (Ρ‚.ΠΊ. ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±Π΅Π· Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ информация ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Π°), создаСт Ρ„Π°ΠΉΠ» Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ .csv ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ Π² Ρ„Π°ΠΉΠ» ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ довольно ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡΠΌ Twitter, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ довольно ΡƒΠ΄ΠΎΠ±Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

from tweepy import Stream

from tweepy import OAuthHandler

from tweepy. streaming import StreamListener

import time

ckey = 'rwn8w66ca3zygh8QByZrGKNwl'

csecret = 'bVMYFypFDR0oEGkqHrRQQ654hjJjdCkISoDeXiQU83s7wzzulB'

atoken = '2 319 285 780-murJh6zedPjhREm0IS9rsoCvWV56LAzVgPjBkLd'

asecret = 'SoGICrzE86dHsFPMTre0MEthEwrfpWqEW1RgbCbNPRqOT'

class listener (StreamListener):

def on_data (self, data):

try:

#print (data)

tweet1 = data. split ('" created_at" :')[1]. split ('," id" :')[0]

tweet2 = data. split ('," text" :')[1]. split ('," source" :')[0]

tweet = tweet1 + tweet2

print (tweet)

saveThis = tweet

saveFile = open ('twitDB18_053_1_final.csv','a')

saveFile.write (saveThis)

saveFile.write (' ')

saveFile.close ()

return True

except BaseException as e:

print ('failed ondata,')

print (str (e))

time.sleep (5)

def on_error (self, status):

print (status)

auth = OAuthHandler (ckey, csecret)

auth.set_access_token (atoken, asecret)

twitterStream = Stream (auth, listener ())

twitterStream.sample (languages=['en'])

ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Ρ… Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½ сообщСний Π² консоли.

Рис. 2 ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Ρ… Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΠ½Π»Π°ΠΉΠ½ сообщСний Π² ΠΊΠΎΠ½ΡΠΎΠ»ΠΈ

БообщСния, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… .csv.

Рис. 3 БообщСния, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… .csv

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Ρ… сообщСний ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Twitter ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ 1 ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ