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