Scrape 公司在 Google 地图上开门和关门时间

问题描述 投票:0回答:1

我正在尝试使用 selenium python 获取 Google 地图公司的开门和关门时间。

下面给出了示例链接:

https://www.google.com/maps/place/Solar+Project+Development+%26+Engineering+Ltd./@23.7988032,90.3525855,17z/data=!3m1!4b1!4m6!3m5!1s0x3755c181e4e00229:0xa17c29dbd5a924f 6 !8m2!3d23.7988032!4d90.3525855!16s%2Fg%2F11q41jstmd?authuser=0&hl=en&entry=ttu

这是我的代码:

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)

我想点击这里:

之后,我想获得所有的开门和关门时间

python selenium-webdriver web-scraping data-mining
1个回答
0
投票

不确定这里出了什么问题。

可以通过单击打开的下拉图标并等待包含任意工作日的

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)
© www.soinside.com 2019 - 2024. All rights reserved.