br.follow_link
toma un objeto Link
o una palabra clave arg (como nr=0
).
br.links()
enumera todos los enlaces.
br.links(url_regex='...')
enumera todos los enlaces cuyas URL coinciden con la expresión regular.
br.links(text_regex='...')
enumera todos los enlaces cuyo texto de enlace coincide con la expresión regular.
br.follow_link(nr=num)
sigue el enlace num
º en la página, con contar a partir de 0. Devuelve un objeto de respuesta (el mismo tipo lo br.open (...) los rendimientos)
br.find_link(url='...')
devuelve el objeto cuya Link
url
es exactamente igual a la url dada.
br.find_link
, br.links
, br.follow_link
, br.click_link
todos aceptan las mismas palabras clave. Ejecute help(br.find_link)
para ver la documentación sobre esas palabras clave.
Editar: Si tiene una URL de destino que desea seguir, se podría hacer algo como esto:
import mechanize
br = mechanize.Browser()
response=br.open("http://www.example.com/")
target_url='http://www.rfc-editor.org/rfc/rfc2606.txt'
for link in br.links():
print(link)
# Link(base_url='http://www.example.com/', url='http://www.rfc-editor.org/rfc/rfc2606.txt', text='RFC 2606', tag='a', attrs=[('href', 'http://www.rfc-editor.org/rfc/rfc2606.txt')])
print(link.url)
# http://www.rfc-editor.org/rfc/rfc2606.txt
if link.url == target_url:
print('match found')
# match found
break
br.follow_link(link) # link still holds the last value it had in the loop
print(br.geturl())
# http://www.rfc-editor.org/rfc/rfc2606.txt
Acabo de darme cuenta de que puedo haber tenido un error en mis encabezados que impedía que los enlaces funcionaran. Gracias a las personas que me ayudaron creo que sus respuestas funcionarán para mí y encontré otra manera más directa de hacerlo en otro sitio tan Voy a publicar eso aquí también para referencia una vez que haya terminado – Rick