es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo descargar un PDF incrustado con PlayWright (Python)?

Estoy tratando de descargar un archivo PDF embebido o obtener su contenido crudo para almacenarlo en una variable utilizando PlayWright con Python. Estoy obteniendo el siguiente resultado para page.content():

Imagen

No puedo encontrar el botón de descarga ni el botón de imprimir.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en Python y Playwright, sugiero utilizar el siguiente código para descargar el archivo PDF incrustado o obtener su contenido sin formato:

    import asyncio
    from playwright.async_api import async_playwright
    
    async def obtener_contenido_pdf():
        async with async_playwright() as p:
            navegador = await p.chromium.launch()
            pagina = await navegador.new_page()
            await pagina.goto("website_url_here")
            contenido_pdf = await pagina.query_selector("embed[type='application/pdf']").inner_html()
            print(contenido_pdf)
            await navegador.close()
    
    asyncio.run(obtener_contenido_pdf())
    

    Este código utiliza Playwright para lanzar un navegador Chromium sin cabeza y navegar hasta el sitio web que contiene el archivo PDF incrustado. Luego selecciona el elemento embed y obtiene su contenido HTML interno, el cual debe contener los datos sin procesar del PDF.

    Alternativamente, puedes intentar utilizar Playwright para simular un clic en el botón de descarga o imprimir en la página, si existe uno. Aquí tienes un ejemplo de código:

    import asyncio
    from playwright.async_api import async_playwright
    
    async def descargar_pdf():
        async with async_playwright() as p:
            navegador = await p.chromium.launch()
            pagina = await navegador.new_page()
            await pagina.goto("website_url_here")
            await pagina.click("download_button_selector_here") # reemplaza con el selector real del botón de descarga
            # O: await pagina.click("print_button_selector_here") 
            await pagina.wait_for_timeout(5000) # Esperar a que se complete la descarga
            await navegador.close()
    
    asyncio.run(descargar_pdf())
    

    Este código utiliza Playwright para lanzar un navegador Chromium sin cabeza, navegar hasta el sitio web que contiene el botón de descarga o impresión y simular un clic en el botón. Luego espera unos segundos para que se complete la descarga antes de cerrar el navegador. Ten en cuenta que debes reemplazar las cadenas de selección de marcadores de posición con los selectores CSS reales del botón de descarga o impresión en la página.

Comments are closed.