¿Cómo encontrar los datos de origen para raspar para una tabla dinámica como en este sitio web? ¿Dónde necesita hacer clic en un botón para completar la lista? ¿Qué puedo hacer para que la tabla aparezca rellenada previamente para un programa que recupera datos web de páginas?

Esta respuesta podría sugerir soluciones que podrían ser ilegales. Esta respuesta es solo para fines educativos.

Los métodos que sugiero utilizan herramientas (bibliotecas, marcos, etc.) en Python. Así que supongo que tienes Python. También necesita un analizador JSON o XML teniendo en cuenta la elección de la plataforma de servir datos. Python ya tiene una biblioteca json incorporada. En el caso de XML, puede encontrar bibliotecas como lxml o BeautifulStoneSoup.

Camino más duro pero más barato

Este método es válido solo si los datos dinámicos se recopilan a través de un servicio RESTful que no requiere ninguna credencial. Tampoco consume mucha memoria.

Entonces, cuando ingreso la URL que me ha dado, simplemente abro la consola de desarrollador de mi navegador (Opera), abro la pestaña de red y filtro por XHR.

Cuando escribo “x” en TextInput y lo busco, envía la solicitud GET a otra URL como tal:

https://www.tsx.com/json/company…

Y, bien, la “x” al final de la URL es su consulta de búsqueda . Lo que ingrese aquí es el resultado que refleja la tabla que ve. Entonces, analizará esto con la biblioteca json de Python.

No es tanto trabajo duro en este caso, pero en otros casos, esto podría requerir mucho esfuerzo.

Manera más fácil pero más costosa

Este método es costoso para la memoria ya que realmente usa un navegador para lograr su objetivo. En realidad, en su caso, ni siquiera lo necesita (ya que el método anterior funcionó de maravilla).

Necesita selenio , que es una biblioteca de contenedor de navegador sin cabeza. Simplemente abra un Firefox, Chrome o Ghost Driver.

Realmente tomará tiempo explicar cómo funciona, así que si alguna vez quieres usarlo, mira las documentaciones.

Selenio con Python


Sin embargo, tenga en cuenta que esto podría ser ilegal sin el permiso del propietario del sitio.

Tienen un punto final de datos estructurados. Aún necesitas analizarlo.

https://www.tsx.com/json/company
https://www.tsx.com/json/company
https://www.tsx.com/json/company

https://www.tsx.com/json/company

función parseData (json) {
let tabla = [];
json.results = json.results || [];
for (let i = 0, n = json.results.length; i dejar registro = json.results [i];
dejar fila = [
record.symbol,
record.name,
nulo,
nulo
];
record.instruments = record.instruments || [];
if (record.instruments.length <1) {
table.append (fila);
}
for (let j = 0, m = record.instruments.length; j deje tmp = row.slice ();
tmp [2] = record.instruments [j] .symbol;
tmp [3] = record.instruments [j] .name;
table.append (tmp);
}
}
tabla de retorno;
} // END: parseData (json)

No puede encontrar los datos de origen, probablemente en una base de datos en el servidor, a la que no puede acceder legalmente.

Si hay una tabla en el sitio como la ve en su navegador , entonces puede conectarse al sitio con su servidor, raspar los datos, construir su página usando esos datos en su tabla, y luego enviarla al navegador de su usuario.

El único problema es que la mayoría de los sitios que tienen datos que desearía considerarían una violación de derechos de autor y enviarían a su empresa de alojamiento una solicitud de eliminación, y su sitio sería eliminado. Los datos son una mercancía y deben pagarse, a menos que los recopile usted mismo (y no los encuentre en otros sitios).