https://mechanicalsoup.readthedocs.io/
Una biblioteca de Python para automatizar la interacción con sitios web. MechanicalSoup almacena y envía cookies automáticamente, sigue redireccionamientos y puede seguir enlaces y enviar formularios. No hace JavaScript.
MechanicalSoup fue creado por M Hickford, un usuario aficionado de la biblioteca Mechanize. Desafortunadamente, Mechanize fue incompatible con Python 3 hasta 2019 y su desarrollo se estancó durante varios años. MechanicalSoup proporciona una API similar, basada en las solicitudes de los gigantes de Python (para sesiones HTTP) y BeautifulSoup (para navegación de documentos). Desde 2017 es un proyecto mantenido activamente por un pequeño equipo que incluye a @hemberger y @moy.
PyPy3 también es compatible (y probado).
Descargue e instale la última versión lanzada de PyPI:
instalación de pip MechanicalSoup
Descargue e instale la versión de desarrollo desde GitHub:
pip instalar git+https://github.com/MechanicalSoup/MechanicalSoup
Instalación desde la fuente (instala la versión en el directorio de trabajo actual):
instalación de python setup.py
(En todos los casos, agregue --user
al comando install
para instalar en el directorio de inicio del usuario actual).
La documentación completa está disponible en https://mechanicalsoup.readthedocs.io/. Es posible que desees saltar directamente a la documentación de la API generada automáticamente.
De ejemplos/expl_qwant.py, código para obtener los resultados de una búsqueda Qwant:
"""Ejemplo de uso de MechanicalSoup para obtener los resultados del motor Qwantsearch. lite.qwant.com/")# Complete la búsqueda formbrowser.select_form('#search-form')browser["q"] = "MechanicalSoup"browser.submit_selected()# Mostrar los resultados del enlace en browser.page.select('.result a'):# Qwant muestra enlaces de redirección , no la URL real, así que extraiga# la URL real del enlace de redirección:href = link.attrs['href']m = re.match(r"^/redirect/[^/]*/(.*)$", href)if m:href = urllib.parse.unquote(m.group(1))print(link.text, ' ->', href)
Más ejemplos están disponibles en ejemplos/.
Para ver un ejemplo con un formulario más complejo (casillas de verificación, botones de opción y áreas de texto), lea tests/test_browser.py y tests/test_form.py.
Instrucciones para construir, probar y contribuir a MechanicalSoup: consulte CONTRIBUCIÓN.primero.
Lea las preguntas frecuentes.