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.

¿Es posible activar el listener de clic de JavaScript de la API de Google Maps y luego extraer los datos utilizando Python?

Me gustaría recopilar los datos de los puntos (latLng) de las concesionarias de la empresa objetivo en los mapas que usan la API de Google Maps.

Intenté recopilar datos utilizando requests_html para renderizar JavaScript en la página del sitio web, luego llegué al elemento utilizando BeautifulSoup.

from bs4 import BeautifulSoup
from requests_html import HTMLSession

<h1>crea un objeto de sesión de HTML</h1>

<p>sesión = HTMLSession()</p>

<h1>Use el objeto para conectarse a la página web necesaria</h1>

<p>resp = sesión.get("http://ihe.istanbul/satis-noktalari")</p>

<h1>Ejecute el código JavaScript en la página web</h1>

<p>resp.html.render()</p>

<p>soup = BeautifulSoup(resp.html.html, "lxml")</p>

<p>html_content = soup.contents[1]</p>

<p>script = html_content.find_all("script")[23]
print(script)

Por lo tanto, la impresión me lleva a una manera de ver el área deseada donde puedo encontrar los valores de punto latLng si se activa el evento de clic.

Sin embargo, la URL del sitio web no puede renovarse y agregar una etiqueta para la zona seleccionada de la ciudad.

Para explicarme de manera clara, creé dos imágenes que muestran exactamente lo que quiero hacer:

Esta salida muestra el resultado en el que no hay ciudad seleccionada:

Esta salida muestra el resultado en el que no hay ciudad seleccionada

Este es el evento de clic activado que muestra el resultado deseado:

Este es el evento de clic activado que muestra el resultado deseado

Si la URL se pudiera actualizar después de activar el evento de JavaScript a través de la API de Google Maps, podría usar la URL. ¿Cómo puedo activarlo utilizando Python o cómo puedo recopilar los datos activados utilizando Python? El código de Python que proporciono muestra eventos no activados.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Raspado de datos de Google Maps utilizando Python

    Para raspar los datos de puntos de las agencias de una compañía objetivo en mapas que utilizan la API de Google Maps, se pueden utilizar bibliotecas de Python como BeautifulSoup y requests_html para renderizar JavaScript en la página y desencadenar el evento deseado.

    El primer paso es crear un objeto HTMLSession y usarlo para conectarse a la página web que contiene los mapas de Google. Luego, se puede ejecutar el código JavaScript en la página utilizando el método render() del objeto HTMLSession.

    Una vez que se ha ejecutado el código JavaScript, se puede usar BeautifulSoup para encontrar el elemento que contiene los datos deseados. En este caso, los valores de punto latLng se pueden encontrar si se desencadena el evento de clic.

    Sin embargo, si la URL del sitio web no puede renovarse y colocar una etiqueta para la zona seleccionada de la ciudad, aún se puede desencadenar el evento utilizando Python.

    Para desencadenar el evento, se puede usar el método click() del elemento que corresponde a la ubicación deseada en el mapa. Se puede localizar el elemento usando BeautifulSoup y emular el evento de clic usando Python.

    Una vez que se ha desencadenado el evento, la página web se actualizará y mostrará los datos deseados. Luego, se pueden raspar los datos actualizados utilizando BeautifulSoup y extraer los valores de punto latLng.

    En general, utilizando bibliotecas de Python como BeautifulSoup y requests_html, se pueden raspar fácilmente los datos de Google Maps y extraer cualquier información deseada.

Comments are closed.