2010-12-12 5 views
2

Je tente d'utiliser le code suivant pour me connecter à megaupload. Ma question est, comment puis-je qu'il s'est connecté avec succès? J'imprime l'URL actuelle à la fin du code, mais quand j'écris le script, ça renvoie juste www.megaupload.com.Utilisez mechanize pour vous connecter à megaupload

import mechanize 
import cookielib 
from BeautifulSoup import BeautifulSoup 
import html2text 

# Browser 
br = mechanize.Browser() 

# Cookie Jar 
cj = cookielib.LWPCookieJar() 
br.set_cookiejar(cj) 

# Browser options 
br.set_handle_equiv(True) 
br.set_handle_gzip(True) 
br.set_handle_redirect(True) 
br.set_handle_referer(True) 
br.set_handle_robots(False) 

# Follows refresh 0 but not hangs on refresh > 0 
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) 

# User-Agent (this is cheating, ok?) 
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')] 

# The site we will navigate into, handling it's session 
br.open('http://www.megaupload.com/?c=login') 

# Select the first (index zero) form 
br.select_form('loginfrm') 

#User credentials 
br.form['username'] = 'USERNAMEGOESHERE' 
br.form['password'] = 'PASSWORDGOESHERE' 

br.submit() 


#prints out the current log in 
print br.geturl() 

Répondre

3

Rechercher le message d'erreur dans le corps de la réponse:

"Username and password do not match" in br.response().read() 

Ou vérifier si vous avez le cookie attendu (exemple simple, tweak au besoin):

any(c.domain == ".megaupload.com" and c.name == "user" for c in cj) 
+0

Merci, je fait était en mesure de vérifier "Bienvenue USERNAME". J'ai essayé de vous upvote mais je suis un nouvel utilisateur et j'ai besoin de "15 réputation" avant de pouvoir le faire. – ChrisC

+0

@ user520574, vous ne pouvez pas le sélectionner comme réponse? bref, oublie ça. – tokland

+0

J'ai été en mesure de le sélectionner comme réponse, je n'ai pas vu cette option auparavant. Merci encore. – ChrisC

Questions connexes