Created
August 10, 2015 14:36
-
-
Save mansilla/ddb9f60c767ade7bb528 to your computer and use it in GitHub Desktop.
Using Mechanize
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
page = br.open("http://example.com") | |
# page tiene el resultado de la request | |
html_source_code = page.read() # br esta ahora en example.com | |
#=== Interactuando con los formularios | |
br.select_form(name="form-name") # si la forma tiene name | |
# si no tiene el tag "name", hay que buscar la forma por su | |
# indice en el codigo de la pagina | |
br.form = list(br.forms())[0] | |
# una vez seleccionado el formulario podemos llenarlo | |
br.form["login"]=login | |
br.form["passw"]=password | |
# tambien podemos ver los controles de una forma | |
for control in br.form.controls: | |
print control | |
print "type=%s, name=%s value=%s" % \ | |
(control.type, control.name, br[control.name]) | |
# o de esta otra manera | |
control = br.form.find_control("controlname") | |
if control.type == "select": # tiene un control de selecccion | |
for item in control.items: | |
print " name=%s values=%s" % \ | |
(item.name, str([label.text for label in item.get_labels()])) | |
br.form[control.name] = ["ItemName"] | |
# -- o si es otro tipo de control | |
if control.type == "text": # es un control de texto | |
control.value = "stuff here" | |
# equivalentemente | |
br.form["controlname"] = "stuff here" | |
# -- radio control | |
br.form[ 'radio-name' ] = [ '2' ] | |
# finalmente hacemos el submit | |
br.sumbit() | |
#=== Buscando elementos en la pagina | |
for link in br.links(): | |
print link.text, link.url | |
request = br.click_link(link) # objeto request como resultado | |
response = br.follow_link(link) # response como resultado | |
print response.geturl() | |
print response.read() | |
# en cualquier caso si hacemos | |
resp = br.open('https://newexample.html') | |
# el objeto br se encargara de gestionar las cookies |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment