我正在尝试使用 selenium python 获取 Google 地图公司的开门和关门时间。
下面给出了示例链接:
这是我的代码:
class GoogleMapScraperInformation:
def __init__(self):
self.headless = False
self.driver = None
def config_driver(self):
options = Options()
options.add_argument("--start-maximized")
s = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=s, options=options)
self.driver = driver
def get_info(self, url):
self.driver.get(url)
try:
companey_name = self.driver.find_element(By.CLASS_NAME, "lfPIob").text
except:
companey_name = ''
# print(companey_name,"***********")
try:
address = self.driver.find_element(By.CLASS_NAME, "kR99db").text
except:
address = ''
# print(address,"***********")
我也向下滚动了一步但没有找到。
image_element = self.driver.find_element(By.CLASS_NAME, "lvtCsd img")
img_result = WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.XPATH,'//*[@id="QA0Szd"]/div/div/div[1]/div[2]/div/div[1]/div/div/div[7]/div[5]/a/div[1]/div[2]/div[1]')))
self.driver.execute_script("arguments[0].scrollIntoView(true);",img_result)
我想点击这里:
之后,我想获得所有的开门和关门时间
不确定这里出了什么问题。
可以通过单击打开的下拉图标并等待包含任意工作日的
aria-label
元素轻松获取。
然后就可以根据需要解析数据了。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
driver.get("https://www.google.com/maps/place/Solar+Project+Development+%26+Engineering+Ltd./@23.7988032,90.3525855,17z/data=!3m1!4b1!4m6!3m5!1s0x3755c181e4e00229:0xa17c29dbd5a924f6!8m2!3d23.7988032!4d90.3525855!16s%2Fg%2F11q41jstmd?authuser=0&hl=en&entry=ttu")
wait = WebDriverWait(driver, 20)
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "[role=button] [role=img]"))).click()
close_open_el = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "[aria-label*=Thursday]")))
print(close_open_el.text)