im faire un script avec module Mechanize.Browser.
Un problème est que tout autre chose est ok, mais lors de la soumission (), il ne fonctionne pas, P>
J'ai donc été trouvé de suspicion Partie source. P>
dans la source HTML, j'ai été trouvée à la suite de la suivante. P>
# -*- coding: cp949-*- import sys,os import mechanize, urllib import cookielib from BeautifulSoup import BeautifulSoup,BeautifulStoneSoup,Tag import datetime, time, socket import re,sys,os,mechanize,urllib,time br = mechanize.Browser() 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) # Want debugging messages? br.set_debug_http(True) br.set_debug_redirects(True) br.set_debug_responses(True) # User-Agent (this is cheating, ok?) br.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.6')] br.open('http://user.buddybuddy.co.kr/Login/LoginForm.asp?URL=') html = br.response().read() print html br.select_form(name='FRMLOGIN') print br.viewing_html() br.form['ID']='zero1zero2' br.form['PWD']='012045' br.submit() print br.response().read()
3 Réponses :
Onsubmit strong> est juste ignoré par la mécanisie, aucune interprétation JavaScript n'est faite.
Vous devez vérifier quel loginCheck (); Dans certains cas limités (validation), vous pouvez faire de manière programmable ce que JavaScript est effectué. P>
Bonjour merci ... Si vous connaissez un exemple, vous voudriez-vous que certains me disent? Si c'est le cas, c'est une bonne référence pour moi! Merci
En regardant LoginCheck, qu'est-ce que ça fait?
Action " user.buddybuddy.co.kr/login/login.asp " est donné par JavaScript.Je suis désolé mais vous ne pouvez pas utiliser mécaniser dans ce cas.
Quel type de module manipule le mieux dans ce cas? Peut-être que Urllib est le meilleur choix pour moi?
Puis-je utiliser la fonction Mécaniser Cliquez? tel comme br.click
Non, vous ne pouvez pas utiliser URLLIB et essayer d'embrocher le bon message sur user.buddybuddy .CO.KR / LOGIN / LOGIN.ASP URL :)
Vous devez soit utiliser un module homondié Domform et SpiderMonkey ( http://pypi.python.org/pypi/python-spidermonkey ) Pour traiter JavaScript. Ou vous déterminez ce que LoginCheck () fait et exécuter sa soumission de formulaire préalable de travail à Python. Si LoginCheck () vérifie simplement la validité évidente des données de connexion, cela devrait être assez facile. Veuillez noter que le paramètre d'action de la balise de formulaire indiqué est manquant. Il est probablement donné dans la partie javascript. P>
Selon ce que vous avez l'intention, il pourrait être plus facile de travailler avec Urllib2 uniquement. Vous pouvez assumer une apparence statique de cette page Web et publier simplement des données avec les méthodes d'Urllib2 et obtenir les résultats avec cela également. P>
Mécaniser ne supporte pas du tout JavaScript. Si vous devez absolument exécuter ce JavaScript, regardez Selenium. Il offre des liaisons python pour contrôler un navigateur réel et courant comme Firefox ou IE. P>