2015-04-30 3 views
0

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

import urllib 

def CurrentP(array, string): 
    count = 0 
    for a_ in array: 
     if a_ == string: 
      return count 
     count = count + 1 

twitters = ["troyhunt", "codinghorror"] 
last = [] 
site = "http://twitter.com/" 

for twitter in twitters: 
    source = site+twitter 
    for line in urllib.urlopen(source): 
     if line.find(twitter+"/status") != -1: 
      id = line.split('/')[3] 
      if id != last[CurrentP(twitters,twitter)]: 
       print "[+] New tweet + " + twitter 
      last[CurrentP(twitters,twitter)] = id 

Но получаю эту ошибку, когда я пытаюсь запустить скрипт

File "twitter.py", line 16 in ? 
for line in urllib.urlopen(source): 
TypeError: iteration over non-sequence 

Что я сделал не так?

+0

Возможно, вы не получаете файл, похожий на объект, из urlopen, которого вы ожидаете. Можете ли вы добавить в тест то, что 'urllib.urlopen (source)' на самом деле? – SuperBiasedMan

ответ

1

Веб Зачистка не самый экономичный способ получения данных, Twitter делает обеспечивает его собственный API, который возвращает данные в хорошем JSON формате, который очень легко разобрать и получить соответствующую inforation, Прелесть в том, что есть много доступные библиотеки python, которые делают то же самое для вас, например Tweepy, что делает извлечение данных таким простым, как этот example.