Cómo prevenir la fijación automática de código fuente HTML en el navegador web

Mi fuente html original es abajo:


    
         aaaaa<bbbbb <="" title="">
    </bbbbb>
    

    

Como puedes ver hay un error en el título. Hay un no cerrado < entre aaaaa y bbbbb.

Cuando abro esta página con los navegadores web (firefox, cromo y borde), los navegadores fijan el problema y cambian el código fuente a esto:


    
         aaaaa<bbbbb 
    
    
    

¿Hay una manera de evitar que los navegadores corrieran problemas en los html originales? Cuando miro, quiero ver la fuente original de html.

Nota: Estoy usando Firefox geckodriver con python/selenium. Así que cualquier solución que incluya una configuración en firefox o python código estaría bien.

Pregunta hecha hace 3 años, 4 meses, 29 días - Por codeartisan


3 Respuestas:

  • Hay alguna diferencia fundamental entre HTML DOM mostradas View Source i.e. use ctrl + U y el marcado mostrado a través Inspector i.e. use ctrl + cambio + I.

    Ambos métodos son dos características diferentes del navegador que permite a los usuarios mirar el HTML de la página web. Sin embargo, la diferencia principal es la View Source muestra el HTML que se entregó desde el servidor web (servidor de aplicaciones) al navegador. ¿Dónde? Elemento de inspección es un Developer Tool Por ejemplo. Chrome DevTools para ver el estado del DOM Árbol después de que el navegador ha aplicado su corrección de error y después de cualquier Javascript han manipulado el DOM. Algunas de esas actividades pueden incluir:

    • Corrección de error HTML por el navegador
    • Normalización HTML por el navegador
    • DOM manipulación por Javascript

    En resumen, usando View Source observarás el Javascript pero no HTML. Los errores HTML pueden ser corregidos en el Inspect Elements herramienta. Como ejemplo:

    • Contigo View Source puede observar:

      The title

    • Mientras que Inspect Element que habría corregido como:

      The title


    Esta maleta

    Sobre la base del concepto mencionado anteriormente, la siguiente marca:

    
        
         aaaaa<bbbbb <="" title="">
        </bbbbb>
        
    
        
    
    

    es corregido como:

    
        
         aaaaa<bbbbb 
        
        
        
    
    

    Respondida el Dec 17, 2020 a las 09:48 - por codealchemy

    Votos positivos: 0 | Votos negativos: 0

  • El comportamiento que estás observando es un comportamiento normal de los navegadores web para interpretar y corregir errores en el código HTML para mostrar correctamente la página. Sin embargo, si deseas ver la fuente HTML original sin que los navegadores realicen correcciones automáticas, puedes utilizar la función "View Page Source" que está disponible en la mayoría de los navegadores.

    En Firefox, por ejemplo, puedes abrir el menú principal (haciendo clic en los tres puntos en la esquina superior derecha), seleccionar "Web Developer" y luego "Page Source" para ver la fuente HTML original sin correcciones.

    Sin embargo, si estás utilizando Selenium para extraer el código fuente de la página, es posible que el WebDriver esté obteniendo el código fuente ya procesado por el navegador. Una forma de obtener el código fuente sin cambios es utilizando el método driver.page_source en Selenium antes de que el navegador tenga la oportunidad de corregir el HTML. Por ejemplo:

    python
    from selenium import webdriver
    
    driver = webdriver.Firefox()
    driver.get('tu_url')
    
    html_source = driver.page_source
    print(html_source)
    

    De esta manera, obtendrás el código fuente HTML original antes de que el navegador lo modifique.

    Respondida el Dec 18, 2020 a las 09:46 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Configuración del navegador Firefox:

    Abre el navegador Firefox. En la barra de direcciones, escribe about:config y presiona Intro. Busca la preferencia html5.disable_auto_correction y configúrala como true.

    Código Python/Selenium:

    Agrega el siguiente código a tu script de Python/Selenium:

    python
    from selenium.webdriver.firefox.options import Options
    
    

    Crea una instancia de las opciones de Firefox

    options = Options()

    Deshabilita la corrección automática de HTML

    options.set_preference("html5.disable_auto_correction", True)

    Crea un nuevo controlador de Firefox con las opciones establecidas

    driver = webdriver.Firefox(options=options)

    Configuración del controlador GeckoDriver:

    En la configuración de tu controlador GeckoDriver, agrega la siguiente línea:

    
    firefox.options.set_preference("html5.disable_auto_correction", True)
    

    Ejemplo completo de Python/Selenium:

    python
    from selenium import webdriver
    from selenium.webdriver.firefox.options import Options
    
    

    Crea una instancia de las opciones de Firefox

    options = Options()

    Deshabilita la corrección automática de HTML

    options.set_preference("html5.disable_auto_correction", True)

    Crea un nuevo controlador de Firefox con las opciones establecidas

    driver = webdriver.Firefox(options=options)

    Navega a la página HTML con el error

    driver.get("file:///path/to/html_file.html")

    Imprime el código fuente HTML original

    html_source = driver.page_source print(html_source)

    Nota:

    Asegúrate de que estás utilizando la última versión de Firefox y GeckoDriver. * Este enfoque solo deshabilita la corrección automática de HTML para la sesión actual del navegador. Tendrás que establecer la preferencia cada vez que abras una nueva sesión.

    Respondida el Dec 18, 2020 a las 09:50 - por Gemini

    Votos positivos: 0 | Votos negativos: 0