Я пытаюсь использовать urllib и urlib2, чтобы проверить, существует ли общедоступный профиль пользователя в различных социальных сетях.Теперь я застрял, пытаясь проверить www.live.com.Например, если я захожу на этот URL http://spaces.live.com/profile.aspx?mem=Example@hotmail.com
и электронная почта mem param существует, он перенаправляется в профиль этой учетной записи, например http://profile.live.com/cid-f5ee5e2a441e7771/
, даже если профиль не является общедоступным.В противном случае учетная запись не существует.
Как мне использовать URLError (или еще) для обнаружения перенаправления?Есть ли лучший способ сделать это?
РЕДАКТИРОВАТЬ:
Self Solved !!!
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import urllib2
from urllib2 import HTTPError, URLError
nick=str(sys.argv[1])
pref_live="http://spaces.live.com/profile.aspx?mem="
suf_live_01="@hotmail.com"
try:
f = urllib2.urlopen( pref_live + nick + suf_live_01 )
print f.read()
f.close()
except HTTPError, e:
print "error"
print e.code
except URLError, e:
print "error"
print e.reason
Если ошибка 404, существует учетная запись, иначе (500),он не существует
РЕДАКТИРОВАТЬ 2:
вот окончательный код, спасибо вам, ребята за вашу помощь:)
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
import urllib2
from urllib2 import HTTPError, URLError
prefix_live="http://spaces.live.com/profile.aspx?mem="
sufix_live=["@hotmail.com","@live.com"]
try:
nick=str(sys.argv[1])
except:
print "Username needed"
print "Usage:"
print sys.argv[0], "[username]"
nick=''
def checking():
for domain in sufix_live:
try:
f = urllib2.urlopen( prefix_live + nick + domain )
print f.read()
f.close()
except HTTPError, e:
if e.code == 404:
print 'Yeah! %s%s exists' % (nick, domain)
elif e.code == 500:
print 'Doh! %s%s Does NOT exists'% (nick, domain)
else:
print 'other error'
print e.code
except URLError, e:
print "There was an error"
print e.reason
if nick != '':
checking()