




{"id":812,"date":"2024-09-03T13:13:31","date_gmt":"2024-09-03T11:13:31","guid":{"rendered":"https:\/\/pacific-webtools.com\/web-extractor\/?p=812"},"modified":"2024-09-03T13:14:24","modified_gmt":"2024-09-03T11:14:24","slug":"pacific-text-extractor-extraire-texte-dune-page-web","status":"publish","type":"post","link":"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/","title":{"rendered":"Pacific Text Extractor &#8211; Extraire Texte d&rsquo;une Page Web"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"812\" class=\"elementor elementor-812\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a1c52ee e-con-full e-flex e-con e-parent\" data-id=\"a1c52ee\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-47eaa7e elementor-widget elementor-widget-html\" data-id=\"47eaa7e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<html>\r\n<head>\r\n<base href=\"https:\/\/blob:https:\/\/party.websim.ai\/010dec58-aae0-4d8e-a505-524d416b3701%20-%20Je%20souhaite%20une%20icone%20%22%20question%20%22%20%C3%A0%20c%C3%B4te%20de%20la%20pr%C3%A9visualisation%20qui%20ouvre%20la%20notice%20suivante%20:%20Une%20fois%20la%20page%20charg%C3%A9e,%20vous%20pouvez%20interagir%20avec%20le%20contenu%20affich%C3%A9.%20Lorsque%20vous%20survolez%20un%20%C3%A9l%C3%A9ment%20de%20texte,%20celui-ci%20sera%20mis%20en%20surbrillance.%20Cliquez%20sur%20le%20texte%20pour%20l'extraire%20et%20l'ajouter%20automatiquement%20%C3%A0%20l'%C3%A9diteur%20de%20texte%20situ%C3%A9%20%C3%A0%20droite%20de%20l'%C3%A9cran.%20Cet%20%C3%A9diteur%20vous%20permet%20de%20formater%20et%20d'organiser%20le%20texte%20extrait%20selon%20vos%20besoins.\">\r\n<meta charset=\"UTF-8\">\r\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\r\n<title>Pacific Text Extractor - Extraction Avanc\u00e9e<\/title>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Roboto:wght@300;400;700&display=swap\" rel=\"stylesheet\">\r\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.1.1\/css\/all.min.css\">\r\n<link href=\"https:\/\/cdn.quilljs.com\/1.3.6\/quill.snow.css\" rel=\"stylesheet\">\r\n<style>\r\n    :root {\r\n        --primary-color: #3498db;\r\n        --secondary-color: #2980b9;\r\n        --background-color: #f5f7fa;\r\n        --text-color: #2c3e50;\r\n        --border-color: #e0e0e0;\r\n        --button-color: #ffffff;\r\n        --button-text-color: #3498db;\r\n        --button-hover-color: #f0f0f0;\r\n        --header-color: #34495e;\r\n        --border-radius: 8px;\r\n    }\r\n\r\n    .dark-theme {\r\n        --primary-color: #3498db;\r\n        --secondary-color: #2980b9;\r\n        --background-color: #2c3e50;\r\n        --text-color: #ecf0f1;\r\n        --border-color: #34495e;\r\n        --button-color: #ffffff;\r\n        --button-text-color: #3498db;\r\n        --button-hover-color: #f0f0f0;\r\n        --header-color: #34495e;\r\n    }\r\n\r\n    body, html {\r\n        margin: 0;\r\n        padding: 0;\r\n        font-family: 'Roboto', sans-serif;\r\n        min-height: 100vh;\r\n        background-color: var(--background-color);\r\n        color: var(--text-color);\r\n        transition: all 0.3s ease;\r\n    }\r\n\r\n    .container {\r\n            display: flex;\r\n            flex-direction: column;\r\n            min-height: 100vh;\r\n            width: 100vw; \/* Assurez-vous que la largeur du conteneur occupe toute la largeur de la fen\u00eatre *\/\r\n            max-width: 100%; \/* D\u00e9sactive toute limitation de la largeur maximale *\/\r\n            margin: 0 auto; \/* Centrer le conteneur horizontalement *\/\r\n        }\r\n\r\n    .hero-section {\r\n        background: linear-gradient(135deg, #3498db, #2980b9);\r\n        padding: 4rem 2rem;\r\n        text-align: center;\r\n        color: white;\r\n        position: relative;\r\n        overflow: hidden;\r\n        min-height: 100vh; \/* Modification : occuper toute la hauteur de la page *\/\r\n        display: flex; \/* Modification : Pour centrer le contenu verticalement *\/\r\n        justify-content: center; \/* Modification : Pour centrer le contenu horizontalement *\/\r\n        align-items: center; \/* Modification : Pour centrer le contenu verticalement *\/\r\n    }\r\n\r\n    .hero-content {\r\n        position: relative;\r\n        z-index: 2;\r\n    }\r\n\r\n    .hero-section h1 {\r\n        font-size: 2.5rem;\r\n        margin-bottom: 1rem;\r\n        font-weight: 700;\r\n    }\r\n\r\n    .hero-section p {\r\n        font-size: 1.1rem;\r\n        max-width: 800px;\r\n        margin: 0 auto 2rem;\r\n        line-height: 1.6;\r\n    }\r\n\r\n    .input-group {\r\n        display: flex;\r\n        gap: 0.8rem;\r\n        max-width: 800px;\r\n        margin: 0 auto;\r\n    }\r\n\r\n    #url-input {\r\n        flex: 1;\r\n        padding: 0.8rem;\r\n        font-size: 1rem;\r\n        border: 1px solid var(--border-color);\r\n        border-radius: var(--border-radius);\r\n        background-color: white;\r\n        color: var(--text-color);\r\n    }\r\n\r\n    main {\r\n        display: none; \/* Modification : masquer initialement *\/\r\n        flex: 1;\r\n        padding: 1.5rem;\r\n        gap: 1.5rem;\r\n    }\r\n\r\n    .editor-section, .preview-section {\r\n        flex: 1;\r\n        display: flex;\r\n        flex-direction: column;\r\n        background-color: var(--background-color);\r\n        border: 1px solid var(--border-color);\r\n        border-radius: var(--border-radius);\r\n        overflow: hidden;\r\n    }\r\n\r\n    .section-header {\r\n        background-color: var(--header-color);\r\n        color: white;\r\n        padding: 0.8rem;\r\n        font-weight: 600;\r\n        display: flex;\r\n        justify-content: space-between;\r\n        align-items: center;\r\n    }\r\n\r\n    #editor {\r\n        flex: 1;\r\n        border: none;\r\n        background-color: var(--background-color);\r\n        color: var(--text-color);\r\n    }\r\n\r\n    #preview {\r\n        flex: 1;\r\n        border: none;\r\n        transition: all 0.3s ease;\r\n        min-height: 500px;\r\n    }\r\n\r\n    .btn {\r\n        padding: 0.8rem 1.5rem;\r\n        background-color: var(--button-color);\r\n        color: var(--button-text-color);\r\n        border: none;\r\n        border-radius: var(--border-radius);\r\n        cursor: pointer;\r\n        font-size: 1rem;\r\n        font-weight: 600;\r\n        transition: all 0.3s ease;\r\n        display: inline-flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 0.5rem;\r\n        position: relative;\r\n    }\r\n\r\n    .btn:hover {\r\n        background-color: var(--button-hover-color);\r\n    }\r\n\r\n    .btn-blue {\r\n        background-color: var(--primary-color);\r\n        color: white;\r\n    }\r\n\r\n    .btn-blue:hover {\r\n        background-color: var(--secondary-color);\r\n    }\r\n\r\n    #theme-toggle {\r\n        position: fixed;\r\n        bottom: 20px;\r\n        right: 20px;\r\n        z-index: 1000;\r\n        background: none;\r\n        border: none;\r\n        cursor: pointer;\r\n        font-size: 2rem;\r\n        transition: all 0.3s ease;\r\n        animation: float 2s ease-in-out infinite;\r\n    }\r\n\r\n    @keyframes float {\r\n        0% { transform: translateY(0px); }\r\n        50% { transform: translateY(-10px); }\r\n        100% { transform: translateY(0px); }\r\n    }\r\n\r\n    #matrix-canvas {\r\n        position: absolute;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 100%;\r\n        z-index: 1;\r\n    }\r\n\r\n    .button-group {\r\n        display: flex;\r\n        justify-content: center;\r\n        gap: 1rem;\r\n        margin-top: 1rem;\r\n        flex-wrap: wrap;\r\n    }\r\n\r\n    .loading-overlay {\r\n        position: fixed;\r\n        top: 0;\r\n        left: 0;\r\n        width: 100%;\r\n        height: 100%;\r\n        background-color: rgba(52, 152, 219, 0.8);\r\n        display: flex;\r\n        justify-content: center;\r\n        align-items: center;\r\n        z-index: 9999;\r\n        opacity: 0;\r\n        visibility: hidden;\r\n        transition: opacity 0.3s ease, visibility 0.3s ease;\r\n    }\r\n\r\n    .loading-overlay.active {\r\n        opacity: 1;\r\n        visibility: visible;\r\n    }\r\n\r\n    .loading-spinner {\r\n        width: 50px;\r\n        height: 50px;\r\n        border: 5px solid #ffffff;\r\n        border-top: 5px solid #2980b9;\r\n        border-radius: 50%;\r\n        animation: spin 1s linear infinite;\r\n    }\r\n\r\n    @keyframes spin {\r\n        0% { transform: rotate(0deg); }\r\n        100% { transform: rotate(360deg); }\r\n    }\r\n\r\n    .tooltip {\r\n        position: absolute;\r\n        background-color: rgba(0, 0, 0, 0.8);\r\n        color: #fff;\r\n        padding: 5px 10px;\r\n        border-radius: 4px;\r\n        font-size: 14px;\r\n        z-index: 1000;\r\n        pointer-events: none;\r\n        opacity: 0;\r\n        transition: opacity 0.3s ease;\r\n    }\r\n\r\n    .tooltip::after {\r\n        content: \"\";\r\n        position: absolute;\r\n        top: 100%;\r\n        left: 50%;\r\n        margin-left: -5px;\r\n        border-width: 5px;\r\n        border-style: solid;\r\n        border-color: rgba(0, 0, 0, 0.8) transparent transparent transparent;\r\n    }\r\n\r\n    #help-icon {\r\n        margin-left: 10px;\r\n        cursor: pointer;\r\n        font-size: 1.2rem;\r\n        color: #ffffff;\r\n    }\r\n\r\n    #extract-all-btn-top { \/* Nouveau bouton \u00e0 c\u00f4t\u00e9 de l'ic\u00f4ne d'aide *\/\r\n        margin-left: 10px;\r\n    }\r\n\r\n    .modal {\r\n        display: none;\r\n        position: fixed;\r\n        z-index: 1001;\r\n        left: 0;\r\n        top: 0;\r\n        width: 100%;\r\n        height: 100%;\r\n        overflow: auto;\r\n        background-color: rgba(0,0,0,0.4);\r\n    }\r\n\r\n    .modal-content {\r\n        background-color: var(--background-color);\r\n        margin: 15% auto;\r\n        padding: 20px;\r\n        border: 1px solid var(--border-color);\r\n        border-radius: var(--border-radius);\r\n        width: 80%;\r\n        max-width: 600px;\r\n    }\r\n\r\n    .close {\r\n        color: var(--text-color);\r\n        float: right;\r\n        font-size: 28px;\r\n        font-weight: bold;\r\n    }\r\n\r\n    .close:hover,\r\n    .close:focus {\r\n        color: var(--primary-color);\r\n        text-decoration: none;\r\n        cursor: pointer;\r\n    }\r\n\r\n    \/* Responsive styles *\/\r\n    @media (max-width: 1024px) {\r\n        .hero-section h1 {\r\n            font-size: 2rem;\r\n        }\r\n\r\n        .hero-section p {\r\n            font-size: 1rem;\r\n        }\r\n\r\n        main {\r\n            flex-direction: column;\r\n        }\r\n\r\n        .editor-section, .preview-section {\r\n            width: 100%;\r\n        }\r\n    }\r\n\r\n    @media (max-width: 768px) {\r\n        .hero-section {\r\n            padding: 2rem 1rem;\r\n        }\r\n\r\n        .input-group {\r\n            flex-direction: column;\r\n        }\r\n\r\n        .button-group {\r\n            flex-direction: column;\r\n        }\r\n\r\n        .btn {\r\n            width: 100%;\r\n        }\r\n\r\n        #preview {\r\n            min-height: 300px;\r\n        }\r\n\r\n        .section-header {\r\n            flex-direction: column;\r\n            gap: 0.5rem;\r\n        }\r\n\r\n        #download-btn-top {\r\n            width: 100%;\r\n        }\r\n    }\r\n\r\n    @media (max-width: 480px) {\r\n        .hero-section h1 {\r\n            font-size: 1.5rem;\r\n        }\r\n\r\n        .hero-section p {\r\n            font-size: 0.9rem;\r\n        }\r\n\r\n        #url-input, .btn {\r\n            font-size: 0.9rem;\r\n        }\r\n\r\n        #theme-toggle {\r\n            font-size: 1.5rem;\r\n            bottom: 10px;\r\n            right: 10px;\r\n        }\r\n    }\r\n<\/style>\r\n<\/head>\r\n<body>\r\n    <div class=\"container\">\r\n        <section class=\"hero-section\">\r\n            <canvas id=\"matrix-canvas\"><\/canvas>\r\n            <div class=\"hero-content\">\r\n                <h1>Pacific Text Extractor<\/h1>\r\n                <p>Extrayez facilement le texte de n'importe quelle page web. Survolez le texte dans l'aper\u00e7u et cliquez pour l'extraire dans l'\u00e9diteur de texte.<\/p>\r\n                <div class=\"input-group\">\r\n                    <input type=\"text\" id=\"url-input\" placeholder=\"Entrez l'URL du site web\" data-tooltip=\"Entrez l'URL de la page web dont vous souhaitez extraire le texte\">\r\n                    <button id=\"load-btn\" class=\"btn\" data-tooltip=\"Cliquez pour charger la page web\"><i class=\"fas fa-download\" style=\"color: #3498db;\"><\/i> Charger<\/button>\r\n                <\/div>\r\n                <div class=\"button-group\">\r\n                    <button id=\"extract-all-btn\" class=\"btn\" data-tooltip=\"Extraire tout le texte de la page\"><i class=\"fas fa-file-export\" style=\"color: #3498db;\"><\/i> Extraire toute la page<\/button>\r\n                    <button id=\"download-btn\" class=\"btn\" data-tooltip=\"T\u00e9l\u00e9charger le contenu de l'\u00e9diteur\"><i class=\"fas fa-file-download\" style=\"color: #3498db;\"><\/i> T\u00e9l\u00e9charger contenu de l'\u00e9diteur<\/button>\r\n                    <button id=\"reset-btn\" class=\"btn\" data-tooltip=\"R\u00e9initialiser l'\u00e9diteur et l'aper\u00e7u\"><i class=\"fas fa-undo\" style=\"color: #3498db;\"><\/i> R\u00e9initialiser<\/button>\r\n                <\/div>\r\n            <\/div>\r\n        <\/section>\r\n        <main>\r\n            <section class=\"preview-section\">\r\n                <div class=\"section-header\">\r\n                    <span>Pr\u00e9visualisation<\/span>\r\n                    <i id=\"help-icon\" class=\"fas fa-question-circle\" data-tooltip=\"Cliquez pour afficher l'aide\"><\/i>\r\n                    <button id=\"extract-all-btn-top\" class=\"btn btn-blue\" data-tooltip=\"Extraire tout le texte de la page\"><i class=\"fas fa-file-export\"><\/i> Extraire toute la page<\/button> <!-- Ajout du nouveau bouton -->\r\n                <\/div>\r\n                <iframe id=\"preview\"><\/iframe>\r\n            <\/section>\r\n            <section class=\"editor-section\">\r\n                <div class=\"section-header\">\r\n                    <span>\u00c9diteur de Texte<\/span>\r\n                    <button id=\"download-btn-top\" class=\"btn btn-blue\" data-tooltip=\"T\u00e9l\u00e9charger le contenu de l'\u00e9diteur\"><i class=\"fas fa-file-download\"><\/i> T\u00e9l\u00e9charger contenu de l'\u00e9diteur<\/button>\r\n                <\/div>\r\n                <div id=\"editor\"><\/div>\r\n            <\/section>\r\n        <\/main>\r\n    <\/div>\r\n\r\n    <button id=\"theme-toggle\" data-tooltip=\"Changer le th\u00e8me\">\ud83c\udf34<\/button>\r\n\r\n    <div class=\"loading-overlay\">\r\n        <div class=\"loading-spinner\"><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"tooltip\" id=\"tooltip\"><\/div>\r\n\r\n    <div id=\"help-modal\" class=\"modal\">\r\n        <div class=\"modal-content\">\r\n            <span class=\"close\">&times;<\/span>\r\n            <h2>Comment utiliser Pacific Text Extractor<\/h2>\r\n            <p>Une fois la page charg\u00e9e, vous pouvez interagir avec le contenu affich\u00e9. Lorsque vous survolez un \u00e9l\u00e9ment de texte, celui-ci sera mis en surbrillance. Cliquez sur le texte pour l'extraire et l'ajouter automatiquement \u00e0 l'\u00e9diteur de texte situ\u00e9 \u00e0 droite de l'\u00e9cran. Cet \u00e9diteur vous permet de formater et d'organiser le texte extrait selon vos besoins.<\/p>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script src=\"https:\/\/cdn.quilljs.com\/1.3.6\/quill.js\"><\/script>\r\n    <script>\r\n        const loadBtn = document.getElementById('load-btn');\r\n        const extractAllBtn = document.getElementById('extract-all-btn');\r\n        const extractAllBtnTop = document.getElementById('extract-all-btn-top'); \/\/ R\u00e9f\u00e9rence au nouveau bouton\r\n        const downloadBtn = document.getElementById('download-btn');\r\n        const downloadBtnTop = document.getElementById('download-btn-top');\r\n        const resetBtn = document.getElementById('reset-btn');\r\n        const preview = document.getElementById('preview');\r\n        const urlInput = document.getElementById('url-input');\r\n        const themeToggle = document.getElementById('theme-toggle');\r\n        const loadingOverlay = document.querySelector('.loading-overlay');\r\n        const tooltip = document.getElementById('tooltip');\r\n        const helpIcon = document.getElementById('help-icon');\r\n        const helpModal = document.getElementById('help-modal');\r\n        const closeModal = document.querySelector('.close');\r\n\r\n        \/\/ Initialize Quill editor\r\n        const quill = new Quill('#editor', {\r\n            theme: 'snow',\r\n            modules: {\r\n                toolbar: [\r\n                    [{ 'header': [1, 2, 3, 4, 5, 6, false] }],\r\n                    ['bold', 'italic', 'underline', 'strike'],\r\n                    ['link', 'image', 'video'],\r\n                    [{ 'size': ['small', false, 'large', 'huge'] }],\r\n                    ['clean']\r\n                ]\r\n            }\r\n        });\r\n\r\n        loadBtn.addEventListener('click', async () => {\r\n            const url = urlInput.value;\r\n            if (url) {\r\n                if (url.includes('pacific-webtools.com')) {\r\n                    alert(\"L'extraction depuis pacific-webtools.com n'est pas autoris\u00e9e.\");\r\n                    return;\r\n                }\r\n                try {\r\n                    showLoading();\r\n                    await loadPage(url);\r\n                    hideLoading();\r\n                    document.querySelector('main').style.display = 'flex'; \/\/ Modification : afficher le bloc main apr\u00e8s chargement\r\n                } catch (error) {\r\n                    console.error('Erreur:', error);\r\n                    alert(\"Une erreur s'est produite lors du chargement de l'URL. Veuillez r\u00e9essayer.\");\r\n                    hideLoading();\r\n                }\r\n            } else {\r\n                alert(\"Veuillez entrer une URL valide.\");\r\n            }\r\n        });\r\n\r\n        async function loadPage(url) {\r\n            const response = await fetch(`https:\/\/api.allorigins.win\/raw?url=${encodeURIComponent(url)}`);\r\n            if (response.ok) {\r\n                const html = await response.text();\r\n                preview.srcdoc = html;\r\n                setupPreviewInteractions();\r\n            } else {\r\n                alert(\"Erreur lors du chargement de l'URL. Veuillez v\u00e9rifier l'URL et r\u00e9essayer.\");\r\n            }\r\n        }\r\n\r\n        function setupPreviewInteractions() {\r\n            preview.addEventListener('load', () => {\r\n                const previewDocument = preview.contentDocument;\r\n                const style = previewDocument.createElement('style');\r\n                style.textContent = `\r\n                    *:hover {\r\n                        cursor: pointer;\r\n                        background-color: rgba(52, 152, 219, 0.2) !important;\r\n                    }\r\n                `;\r\n                previewDocument.head.appendChild(style);\r\n\r\n                previewDocument.body.addEventListener('click', (event) => {\r\n                    event.preventDefault();\r\n                    const text = event.target.textContent.trim();\r\n                    if (text) {\r\n                        const tagName = event.target.tagName.toLowerCase();\r\n                        let size = 'small'; \/\/ default size\r\n\r\n                        \/\/ Corresponding sizes based on tagName\r\n                        switch (tagName) {\r\n                            case 'h1':\r\n                                size = 'huge'; \/\/ Corresponding to 30px\r\n                                break;\r\n                            case 'h2':\r\n                                size = 'large'; \/\/ Corresponding to 25px\r\n                                break;\r\n                            case 'h3':\r\n                                size = false; \/\/ Corresponding to 20px (normal)\r\n                                break;\r\n                            case 'h4':\r\n                                size = false; \/\/ Corresponding to 18px (normal)\r\n                                break;\r\n                            case 'h5':\r\n                                size = false; \/\/ Corresponding to 16px (normal)\r\n                                break;\r\n                            case 'h6':\r\n                                size = false; \/\/ Corresponding to 14px (normal)\r\n                                break;\r\n                            case 'div':\r\n                            case 'p':\r\n                            case 'span':\r\n                            case 'li':\r\n                            case 'a':\r\n                            case 'code':\r\n                            case 'pre':\r\n                                size = 'small'; \/\/ Corresponding to 13px\r\n                                break;\r\n                            case 'blockquote':\r\n                                size = 'large'; \/\/ Corresponding to 15px\r\n                                break;\r\n                            case 'small':\r\n                                size = 'small'; \/\/ Corresponding to 11px\r\n                                break;\r\n                        }\r\n\r\n                        quill.format('size', size);\r\n                        quill.insertText(quill.getLength(), text + '\\n\\n');\r\n                    }\r\n                });\r\n            });\r\n        }\r\n\r\n        extractAllBtn.addEventListener('click', () => {\r\n            const previewDocument = preview.contentDocument;\r\n            if (previewDocument) {\r\n                const text = previewDocument.body.innerText;\r\n                quill.setText(text);\r\n            } else {\r\n                alert(\"Veuillez d'abord charger une page web.\");\r\n            }\r\n        });\r\n\r\n        extractAllBtnTop.addEventListener('click', () => { \/\/ Ajout du comportement pour le nouveau bouton\r\n            extractAllBtn.click();\r\n        });\r\n\r\n        function downloadQuillContent() {\r\n            const text = quill.getText();\r\n            const blob = new Blob([text], { type: 'text\/plain' });\r\n            const url = URL.createObjectURL(blob);\r\n            const a = document.createElement('a');\r\n            a.href = url;\r\n            a.download = 'contenu_editeur.txt';\r\n            document.body.appendChild(a);\r\n            a.click();\r\n            document.body.removeChild(a);\r\n            URL.revokeObjectURL(url);\r\n        }\r\n\r\n        downloadBtn.addEventListener('click', downloadQuillContent);\r\n        downloadBtnTop.addEventListener('click', downloadQuillContent);\r\n\r\n        resetBtn.addEventListener('click', () => {\r\n            quill.setText('');\r\n            urlInput.value = '';\r\n            preview.srcdoc = '';\r\n        });\r\n\r\n        themeToggle.addEventListener('click', () => {\r\n            document.body.classList.toggle('dark-theme');\r\n            updateQuillTheme();\r\n        });\r\n\r\n        function updateQuillTheme() {\r\n            const isDarkTheme = document.body.classList.contains('dark-theme');\r\n            const editorElement = document.querySelector('.ql-editor');\r\n            if (isDarkTheme) {\r\n                editorElement.style.backgroundColor = '#3c5064';\r\n                editorElement.style.color = '#ecf0f1';\r\n            } else {\r\n                editorElement.style.backgroundColor = '';\r\n                editorElement.style.color = '';\r\n            }\r\n        }\r\n\r\n        \/\/ Matrix background effect\r\n        const canvas = document.getElementById('matrix-canvas');\r\n        const ctx = canvas.getContext('2d');\r\n\r\n        function resizeCanvas() {\r\n            canvas.width = window.innerWidth;\r\n            canvas.height = window.innerHeight;\r\n        }\r\n\r\n        resizeCanvas();\r\n\r\n        const letters = 'ABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZABCDEFGHIJKLMNOPQRSTUVXYZ';\r\n        const fontSize = 10;\r\n        let columns = canvas.width \/ fontSize;\r\n\r\n        const drops = [];\r\n        for (let i = 0; i < columns; i++) {\r\n            drops[i] = 1;\r\n        }\r\n\r\n        function drawMatrix() {\r\n            ctx.fillStyle = 'rgba(52, 152, 219, 0.05)';\r\n            ctx.fillRect(0, 0, canvas.width, canvas.height);\r\n\r\n            ctx.fillStyle = '#ffffff';\r\n            ctx.font = fontSize + 'px monospace';\r\n\r\n            for (let i = 0; i < drops.length; i++) {\r\n                const text = letters[Math.floor(Math.random() * letters.length)];\r\n                ctx.fillText(text, i * fontSize, drops[i] * fontSize);\r\n\r\n                if (drops[i] * fontSize > canvas.height && Math.random() > 0.975) {\r\n                    drops[i] = 0;\r\n                }\r\n\r\n                drops[i]++;\r\n            }\r\n        }\r\n\r\n        let animationId;\r\n        function animate() {\r\n            drawMatrix();\r\n            animationId = requestAnimationFrame(animate);\r\n        }\r\n\r\n        animate();\r\n\r\n        canvas.addEventListener('mousemove', (e) => {\r\n            const rect = canvas.getBoundingClientRect();\r\n            const x = e.clientX - rect.left;\r\n            const y = e.clientY - rect.top;\r\n\r\n            ctx.fillStyle = 'rgba(52, 152, 219, 0.3)';\r\n            ctx.beginPath();\r\n            ctx.arc(x, y, 50, 0, Math.PI * 2);\r\n            ctx.fill();\r\n        });\r\n\r\n        window.addEventListener('resize', () => {\r\n            resizeCanvas();\r\n            columns = canvas.width \/ fontSize;\r\n            drops.length = columns;\r\n            for (let i = 0; i < columns; i++) {\r\n                drops[i] = 1;\r\n            }\r\n        });\r\n\r\n        function showLoading() {\r\n            loadingOverlay.classList.add('active');\r\n        }\r\n\r\n        function hideLoading() {\r\n            loadingOverlay.classList.remove('active');\r\n        }\r\n\r\n        \/\/ Tooltip functionality\r\n        function showTooltip(event) {\r\n            const target = event.target;\r\n            const tooltipText = target.getAttribute('data-tooltip');\r\n            if (tooltipText) {\r\n                tooltip.textContent = tooltipText;\r\n                tooltip.style.opacity = '1';\r\n                const rect = target.getBoundingClientRect();\r\n                tooltip.style.left = `${rect.left + (rect.width \/ 2) - (tooltip.offsetWidth \/ 2)}px`;\r\n                tooltip.style.top = `${rect.top - tooltip.offsetHeight - 10}px`;\r\n            }\r\n        }\r\n\r\n        function hideTooltip() {\r\n            tooltip.style.opacity = '0';\r\n        }\r\n\r\n        document.querySelectorAll('[data-tooltip]').forEach(element => {\r\n            element.addEventListener('mouseenter', showTooltip);\r\n            element.addEventListener('mouseleave', hideTooltip);\r\n        });\r\n\r\n        \/\/ Help modal functionality\r\n        helpIcon.addEventListener('click', () => {\r\n            helpModal.style.display = 'block';\r\n        });\r\n\r\n        closeModal.addEventListener('click', () => {\r\n            helpModal.style.display = 'none';\r\n        });\r\n\r\n        window.addEventListener('click', (event) => {\r\n            if (event.target === helpModal) {\r\n                helpModal.style.display = 'none';\r\n            }\r\n        });\r\n    <\/script>\r\n<\/body>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Pacific Text Extractor &#8211; Extraction Avanc\u00e9e Pacific Text Extractor Extrayez facilement le texte de n&rsquo;importe quelle page web. Survolez le texte dans l&rsquo;aper\u00e7u et cliquez pour l&rsquo;extraire dans l&rsquo;\u00e9diteur de texte. Charger Extraire toute la page T\u00e9l\u00e9charger contenu de l&rsquo;\u00e9diteur R\u00e9initialiser Pr\u00e9visualisation Extraire toute la page \u00c9diteur de Texte T\u00e9l\u00e9charger contenu de l&rsquo;\u00e9diteur \ud83c\udf34 &times; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":815,"comment_status":"open","ping_status":"open","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-812","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-ressources"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Pacific Text Extractor - Extraire Texte d&#039;une Page Web - Web Extractor<\/title>\n<meta name=\"description\" content=\"Pacific Text Extractor : Extraire et \u00e9diter le texte d&#039;une page web en 3 clics facilement. Id\u00e9al pour d\u00e9veloppeurs et marketeurs !\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pacific Text Extractor - Extraire Texte d&#039;une Page Web - Web Extractor\" \/>\n<meta property=\"og:description\" content=\"Pacific Text Extractor : Extraire et \u00e9diter le texte d&#039;une page web en 3 clics facilement. Id\u00e9al pour d\u00e9veloppeurs et marketeurs !\" \/>\n<meta property=\"og:url\" content=\"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Extractor\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-03T11:13:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-03T11:14:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Extraction-texte-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"492\" \/>\n\t<meta property=\"og:image:height\" content=\"337\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/\",\"url\":\"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/\",\"name\":\"Pacific Text Extractor - Extraire Texte d'une Page Web - Web Extractor\",\"isPartOf\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Extraction-texte-1.webp\",\"datePublished\":\"2024-09-03T11:13:31+00:00\",\"dateModified\":\"2024-09-03T11:14:24+00:00\",\"author\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/0f95670ed0b3b265a488dae146fdda48\"},\"description\":\"Pacific Text Extractor : Extraire et \u00e9diter le texte d'une page web en 3 clics facilement. Id\u00e9al pour d\u00e9veloppeurs et marketeurs !\",\"breadcrumb\":{\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/#primaryimage\",\"url\":\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Extraction-texte-1.webp\",\"contentUrl\":\"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Extraction-texte-1.webp\",\"width\":492,\"height\":337},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/pacific-webtools.com\/web-extractor\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pacific Text Extractor &#8211; Extraire Texte d&rsquo;une Page Web\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/#website\",\"url\":\"https:\/\/pacific-webtools.com\/web-extractor\/\",\"name\":\"Web Extractor\",\"description\":\"Extracteur de Code\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/pacific-webtools.com\/web-extractor\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/0f95670ed0b3b265a488dae146fdda48\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/94a5a2d7ac834dce40e1e25743dcb576?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/94a5a2d7ac834dce40e1e25743dcb576?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/pacific-webtools.com\/web-extractor\"],\"url\":\"https:\/\/pacific-webtools.com\/web-extractor\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pacific Text Extractor - Extraire Texte d'une Page Web - Web Extractor","description":"Pacific Text Extractor : Extraire et \u00e9diter le texte d'une page web en 3 clics facilement. Id\u00e9al pour d\u00e9veloppeurs et marketeurs !","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/","og_locale":"fr_FR","og_type":"article","og_title":"Pacific Text Extractor - Extraire Texte d'une Page Web - Web Extractor","og_description":"Pacific Text Extractor : Extraire et \u00e9diter le texte d'une page web en 3 clics facilement. Id\u00e9al pour d\u00e9veloppeurs et marketeurs !","og_url":"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/","og_site_name":"Web Extractor","article_published_time":"2024-09-03T11:13:31+00:00","article_modified_time":"2024-09-03T11:14:24+00:00","og_image":[{"width":492,"height":337,"url":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Extraction-texte-1.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"admin","Dur\u00e9e de lecture estim\u00e9e":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/","url":"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/","name":"Pacific Text Extractor - Extraire Texte d'une Page Web - Web Extractor","isPartOf":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/#website"},"primaryImageOfPage":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/#primaryimage"},"image":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/#primaryimage"},"thumbnailUrl":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Extraction-texte-1.webp","datePublished":"2024-09-03T11:13:31+00:00","dateModified":"2024-09-03T11:14:24+00:00","author":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/0f95670ed0b3b265a488dae146fdda48"},"description":"Pacific Text Extractor : Extraire et \u00e9diter le texte d'une page web en 3 clics facilement. Id\u00e9al pour d\u00e9veloppeurs et marketeurs !","breadcrumb":{"@id":"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/#primaryimage","url":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Extraction-texte-1.webp","contentUrl":"https:\/\/pacific-webtools.com\/web-extractor\/wp-content\/uploads\/2024\/09\/Extraction-texte-1.webp","width":492,"height":337},{"@type":"BreadcrumbList","@id":"https:\/\/pacific-webtools.com\/web-extractor\/pacific-text-extractor-extraire-texte-dune-page-web\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/pacific-webtools.com\/web-extractor\/"},{"@type":"ListItem","position":2,"name":"Pacific Text Extractor &#8211; Extraire Texte d&rsquo;une Page Web"}]},{"@type":"WebSite","@id":"https:\/\/pacific-webtools.com\/web-extractor\/#website","url":"https:\/\/pacific-webtools.com\/web-extractor\/","name":"Web Extractor","description":"Extracteur de Code","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/pacific-webtools.com\/web-extractor\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/0f95670ed0b3b265a488dae146fdda48","name":"admin","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/pacific-webtools.com\/web-extractor\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/94a5a2d7ac834dce40e1e25743dcb576?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/94a5a2d7ac834dce40e1e25743dcb576?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/pacific-webtools.com\/web-extractor"],"url":"https:\/\/pacific-webtools.com\/web-extractor\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/posts\/812"}],"collection":[{"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/comments?post=812"}],"version-history":[{"count":4,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/posts\/812\/revisions"}],"predecessor-version":[{"id":818,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/posts\/812\/revisions\/818"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/media\/815"}],"wp:attachment":[{"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/media?parent=812"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/categories?post=812"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pacific-webtools.com\/web-extractor\/wp-json\/wp\/v2\/tags?post=812"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}