0
我正在使用基於Matthew A.Russell所着的「挖掘社交網絡」一書中的模塊twitter和redis來研究Python中的Twitter數據挖掘應用程序。每當我試圖讓朋友和使用Redis的模塊追隨者的信息,它給了我下面的錯誤:Twitter Python程序給出連接錯誤
raise ConnectionError(self._error_message(e))
ConnectionError: Error 10061 connecting localhost:6379. No connection could be made because the target machine actively refused it.
當我不使用Redis的,我可以得到的所有朋友和追隨者的ID。但是我需要Redis對數據執行某些分析工作。我的源代碼如下:
import json
import locale
import redis
from prettytable import PrettyTable
# Pretty printing numbers
from twitter__util import pp
# These functions create consistent keys from
# screen names and user id values
from twitter__util import getRedisIdByScreenName
from twitter__util import getRedisIdByUserId
SCREEN_NAME = "timoreilly"
locale.setlocale(locale.LC_ALL, '')
def calculate():
r = redis.Redis() # Default connection settings on localhost
follower_ids = list(r.smembers(getRedisIdByScreenName(SCREEN_NAME,
'follower_ids')))
followers = r.mget([getRedisIdByUserId(follower_id, 'info.json')
for follower_id in follower_ids])
followers = [json.loads(f) for f in followers if f is not None]
freqs = {}
for f in followers:
cnt = f['followers_count']
if not freqs.has_key(cnt):
freqs[cnt] = []
freqs[cnt].append({'screen_name': f['screen_name'], 'user_id': f['id']})
# It could take a few minutes to calculate freqs, so store a snapshot for later use
r.set(getRedisIdByScreenName(SCREEN_NAME, 'follower_freqs'),
json.dumps(freqs))
keys = freqs.keys()
keys.sort()
print 'The top 10 followers from the sample:'
fields = ['Date', 'Count']
pt = PrettyTable(fields=fields)
[pt.set_field_align(f, 'l') for f in fields]
for (user, freq) in reversed([(user['screen_name'], k) for k in keys[-10:]
for user in freqs[k]]):
pt.add_row([user, pp(freq)])
pt.printt()
all_freqs = [k for k in keys for user in freqs[k]]
avg = reduce(lambda x, y: x + y, all_freqs)/len(all_freqs)
print "\nThe average number of followers for %s's followers: %s" \
% (SCREEN_NAME, pp(avg))
# psyco can only compile functions, so wrap code in a function
try:
import psyco
psyco.bind(calculate)
except ImportError, e:
pass # psyco not installed
calculate()
任何和所有的幫助將非常感激。謝謝!
我該怎麼做? – Nathan822
你在使用什麼操作系統?如果是Ubuntu或其他Debian衍生產品,則運行以下命令:'sudo apt-get install telnet' –
Windows 7.我已安裝telnet客戶端,並運行命令telnet localhost 6379.如果失敗。輸出是: 正在連接到本地主機...無法在端口6379上打開與主機的通信:連接失敗。 – Nathan822