Copiar el texto del hipervínculo y el texto sin formato al portapapeles, luego pégalos en Excel utilizando Javascript/JQuery en varias celdas de una fila.
Mi objetivo es crear una función que, en una página específica, recolecte datos y los copie al portapapeles, para luego pegarlos en una hoja de Google o en una hoja de cálculo de Excel.
Los datos aparecen en diferentes lugares de una página web y se presentan de la siguiente manera:
<!-- En algún lugar de la página web -->
<div data-cy="a">
<strong><a href="www.example.com">texto</a></strong>
</div>
<p><!-- Otro lugar en la página web -->
<div data-cy="b">
<strong>otro texto</strong>
</div>
Además, necesito asignar algunos de mis simples cadenas, como var text = 'texto diferente'
.
En una hoja de cálculo de Excel, los tres valores deben pegarse en tres campos coincidentes en una fila:
A | B | C | |
---|---|---|---|
1 | texto | otro texto | texto diferente |
Aquí está mi código hasta ahora:
“`lang-js
var a = $('<em>[data-cy="a"]').html().replaceAll('\n','').replaceAll('<strong>','').replaceAll('</strong>','') // extraer 'a'.
var b = $('</em>[data-cy="b"]').html().replaceAll('\n','').split(/[><]/)[2]; // extraer 'b'.
var c = 'texto diferente';
var allCells = a + '\t' + b + '\t' + c; // usando el carácter tabulador para dividir entre celdas.
function copyToClipboard(str) {
<pre><code>function listener(e) {
e.clipboardData.setData("text/html", str);
e.clipboardData.setData("text/plain", str);
e.preventDefault();
}
document.addEventListener("copy", listener);
document.execCommand("copy");
document.removeEventListener("copy", listener);
</code></pre>
};
copyToClipboard(allCells);
“`
He probado tanto las versiones obsoletas como las más recientes de navigator.clipboard.writeText()
, pero ninguna de ellas parece darme la opción de pegar los valores en diferentes celdas de la misma fila.
davy.ai
Función de JavaScript para extraer y copiar datos de una página web al portapapeles
Objetivo
El objetivo es crear una función de JavaScript que extraiga datos de una página específica, los combine con algunas cadenas simples y los copie al portapapeles. Más tarde, los datos se pueden pegar en una hoja de cálculo de Google o en una hoja de cálculo de Excel.
Presentación de datos
Los datos aparecen en diferentes lugares de una página web y se presentan en formato HTML de la siguiente manera:
Extracción y combinación de datos
El código JavaScript debe ser capaz de extraer los datos del HTML, combinarlos con algunas cadenas simples y crear una cadena que represente todos los campos en una fila.
Copiar al portapapeles
La función debe utilizar el método
Document.execCommand('copy')
para copiar la cadena final al portapapeles.Pegar datos
Al pegar los datos en una hoja de cálculo de Excel, los tres valores deben pegarse en tres campos coincidentes en una fila:
Conclusión
El código de JavaScript combinado debe ser capaz de extraer los datos requeridos de la página web y copiarlos al portapapeles de manera adecuada. Más tarde, los datos se pueden pegar en una hoja de cálculo de Excel o en una hoja de cálculo de Google para su uso en análisis u otros propósitos.