Saltar al contenido

Navegando en Python con Mechanize

Navegando con Mechanize

El módulo de mecanizar en Python es similar a perl WWW: Mechanize.

Le brinda un objeto similar al navegador para interactuar con las páginas web.

A continuación se muestra un ejemplo de cómo utilizarlo en un programa.

import mechanize
br = mechanize.Browser()
br.open("http://www.example.com/")

Siga el segundo enlace con el texto del elemento que coincida con la expresión regular

response1 = br.follow_link(text_regex=r"cheeses*shop", nr=1)
assert br.viewing_html()
print br.title()
print response1.geturl()
print response1.info()  # headers
print response1.read()  # body

Para obtener el código de respuesta de un sitio web, puede utilizar el código de respuesta

from mechanize import Browser
browser = Browser()
response = browser.open('http://www.google.com')
print response.code

Obtenga todos los formularios de un sitio web

import mechanize
br = mechanize.Browser()
br.open("http://www.google.com/")
for f in br.forms():
    print f

Encontré esta publicación en http://stockrt.github.com que muy precisa describe cómo
para emular un navegador en Python usando mecanizar.

Navegando con Python (escrito de Drew Stephens)

#!/usr/bin/python
import re
from mechanize import Browser
br = Browser()

Ignorar robots.txt

br.set_handle_robots( False )

Google exige un usuario-agente que no sea un robot

br.addheaders = [('User-agent', 'Firefox')]

Recupere la página de inicio de Google, guardando la respuesta

br.open( "http://google.com" )

Seleccione el cuadro de búsqueda y busque ‘foo’

br.select_form( 'f' )
br.form[ 'q' ] = 'foo'

Obtener los resultados de la búsqueda

br.submit()

Busque el enlace a foofighters.com; ¿Por qué hicimos una búsqueda?

resp = None

for link in br.links():
    siteMatch = re.compile( 'www.foofighters.com' ).search( link.url )

    if siteMatch:
        resp = br.follow_link( link )
        break

Imprime el sitio

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.

content = resp.get_data()
print content

El guión anterior está dividido para que sea más fácil de leer.

Entrenamiento de Python recomendado

Para el entrenamiento de Python, nuestra principal recomendación es DataCamp.