Automatización de Google Maps Selenium usando Python

Requisitos previos: Automatización del navegador con Selenium

Selenium es una poderosa herramienta para controlar un navegador web a través del programa. Es funcional para todos los navegadores, funciona en todos los principales sistemas operativos y sus scripts están escritos en varios lenguajes, es decir, Python, Java, C#, etc. Trabajaremos con Python. Se puede instalar usando el siguiente comando:

pip install selenium

En este artículo, vamos a ver cómo automatizar la búsqueda de Google Maps usando Selenium al obtener la ubicación de un lugar y los detalles de su transporte a otra ubicación.

Paso 1) Importar módulos

Python3

# import required modules
from selenium import webdriver
from time import sleep

Paso 2) Mencione la ruta de su controlador Chrome en la variable del controlador que descargó. Y luego necesitamos obtener un sitio web de Google Maps.

Python3

# assign url in the webdriver object
driver = webdriver.Chrome()
driver.get("https://www.google.co.in/maps/@10.8091781,78.2885026,7z")
sleep(2)

Paso 3) Siguiente paso Declare una función bajo esta función, debe inspeccionar la barra de búsqueda en el sitio web de Google Maps. Y copie el nombre de la clase en el lugar de la variable. Debe enviar claves a un elemento web en particular. Proporcione su destino como entrada. Proporcione el valor xpath en la variable de envío, esto se usa para presionar el botón de búsqueda 

Python3

# search locations
def searchplace():
    Place = driver.find_element_by_class_name("tactile-searchbox-input")
    Place.send_keys("Tiruchirappalli")
    Submit = driver.find_element_by_xpath(
        "/html/body/jsl/div[3]/div[9]/div[3]/div[1]/div[1]/div[1]/div[2]/div[1]/button")
    Submit.click()
  
searchplace()

Paso 4) Declarar una función llamada direcciones. Bajo esta función, debe enviar un clic al botón de dirección. Copie el valor de la ruta X del botón de indicaciones del sitio web de Google Maps. Y pegue el valor en la variable.

Python3

# get directions
def directions():
    sleep(10)
    directions = driver.find_element_by_xpath(
        "/html/body/jsl/div[3]/div[9]/div[7]/div/div[1]/div/div/div[5]/div[1]/div/button")
    directions.click()
  
directions()

Paso 5) Declara una función llamada find. Bajo esta función, debe crear una variable y en esta variable, debe copiar el xpath del valor de la barra de búsqueda y pegar el valor en la variable.

A continuación, envíe el punto de partida al cuadro de búsqueda particular. Y debe enviar un botón de clic al botón de búsqueda para seguir el proceso del Paso 1 .

Python3

# find place
def find():
    sleep(6)
    find = driver.find_element_by_xpath(
        "/html/body/jsl/div[3]/div[9]/div[3]/div[1]/div[2]/div/div[3]/div[1]/div[1]/div[2]/div/div/input")
    find.send_keys("Tirunelveli")
    sleep(2)
    search = driver.find_element_by_xpath(
        "/html/body/jsl/div[3]/div[9]/div[3]/div[1]/div[2]/div/div[3]/div[1]/div[1]/div[2]/button[1]")
    search.click()
  
find()

Paso 6) Ahora necesitamos desechar los datos esenciales para completar nuestro proceso de automatización. Aquí necesitamos copiar los valores xpath de Kilómetros totales entre dos lugares

Tiempo de viaje en autobús y tiempo de viaje en tren entre estos dos lugares. Aquí extraje los datos del sitio web de mapas de Google usando Web-Elements.

Python3

# get transportation details
def kilometers():
    sleep(5)
    Totalkilometers = driver.find_element_by_xpath(
        "/html/body/jsl/div[3]/div[9]/div[7]/div/div[1]/div/div/div[5]/div[1]/div[1]/div[1]/div[1]/div[2]/div")
    print("Total Kilometers:", Totalkilometers.text)
    sleep(5)
    Bus = driver.find_element_by_xpath(
        "/html/body/jsl/div[3]/div[9]/div[7]/div/div[1]/div/div/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/span[1]")
    print("Bus Travel:", Bus.text)
    sleep(7)
    Train = driver.find_element_by_xpath(
        "/html/body/jsl/div[3]/div[9]/div[7]/div/div[1]/div/div/div[5]/div[2]/div[1]/div[2]/div[1]/div")
    print("Train Travel:", Train.text)
    sleep(7)
  
kilometers()

A continuación se muestra el programa completo basado en el enfoque anterior:

Python3

# import required modules
from selenium import webdriver
from time import sleep
  
  
# assign url in the webdriver object
driver = webdriver.Chrome()
driver.get("https://www.google.co.in/maps/@10.8091781,78.2885026,7z")
sleep(2)
  
  
# search locations
def searchplace():
    Place = driver.find_element_by_class_name("tactile-searchbox-input")
    Place.send_keys("Tiruchirappalli")
    Submit = driver.find_element_by_xpath(
        "/html/body/jsl/div[3]/div[9]/div[3]/div[1]/div[1]/div[1]/div[2]/div[1]/button")
    Submit.click()
  
searchplace()
  
  
# get directions
def directions():
    sleep(10)
    directions = driver.find_element_by_xpath(
        "/html/body/jsl/div[3]/div[9]/div[7]/div/div[1]/div/div/div[5]/div[1]/div/button")
    directions.click()
  
directions()
  
  
# find place
def find():
    sleep(6)
    find = driver.find_element_by_xpath(
        "/html/body/jsl/div[3]/div[9]/div[3]/div[1]/div[2]/div/div[3]/div[1]/div[1]/div[2]/div/div/input")
    find.send_keys("Tirunelveli")
    sleep(2)
    search = driver.find_element_by_xpath(
        "/html/body/jsl/div[3]/div[9]/div[3]/div[1]/div[2]/div/div[3]/div[1]/div[1]/div[2]/button[1]")
    search.click()
  
find()
  
  
# get transportation details
def kilometers():
    sleep(5)
    Totalkilometers = driver.find_element_by_xpath(
        "/html/body/jsl/div[3]/div[9]/div[7]/div/div[1]/div/div/div[5]/div[1]/div[1]/div[1]/div[1]/div[2]/div")
    print("Total Kilometers:", Totalkilometers.text)
    sleep(5)
    Bus = driver.find_element_by_xpath(
        "/html/body/jsl/div[3]/div[9]/div[7]/div/div[1]/div/div/div[5]/div[1]/div[1]/div[1]/div[1]/div[1]/span[1]")
    print("Bus Travel:", Bus.text)
    sleep(7)
    Train = driver.find_element_by_xpath(
        "/html/body/jsl/div[3]/div[9]/div[7]/div/div[1]/div/div/div[5]/div[2]/div[1]/div[2]/div[1]/div")
    print("Train Travel:", Train.text)
    sleep(7)
  
kilometers()

Producción:

Publicación traducida automáticamente

Artículo escrito por arunkumarbalamurugan2000 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *