Собрать данные с карты с помощью селена

Привет, я пытаюсь очистить данные с этого веб-сайта, они появляются на карте Google. Он будет работать нормально 2 раза, но в третий раз они выдают ошибку при использовании селена. вот мой код:

import selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from shutil import which
import time
import pandas as pd
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
Names = []
Emails = []
chrome_path = which('chromedriver')
driver = webdriver.Chrome(executable_path=chrome_path)
driver.maximize_window()
error = []
Address = []
Debug = []
for a in range(1,72):

    driver.get('https://www.boogsport.vlaanderen/zoek-een-club/')

    try:

        driver.find_element_by_xpath('//button[@id = "oc_cb_btn"]').click()
    except:
        error.append("NOne")
    WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,'//div[@class = "entry-content"]/iframe')))

    xpath = "//div[@aria-label='Map']/div[3]/div/div/div["
    xpath += str(a)
    xpath += "]"
    

    driver.find_element_by_xpath(xpath).click()
    # WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, xpath))).click()
    # time.sleep(2)

    name = driver.find_element_by_xpath('//div[@class = "qqvbed-bN97Pc"]/div[1]/div[1]/div[2]')
    Names.append(name.text)
    try:

        mail = driver.find_element_by_xpath('//div[@class = "qqvbed-bN97Pc"]/div[1]/div[2]/div[2]/a')
        Emails.append(mail.get_attribute('href'))
    except:
        Emails.append("None")
    try:

        adress = driver.find_element_by_xpath('//div[@class = "qqvbed-bN97Pc"]/div[2]/div[2]')
        Address.append(adress.text)
    except:
        Address.append("None")

  


df = pd.DataFrame(Names , columns = ['Name'])
df['Email'] = Emails
df['Address'] = Address
print(df)

и я получаю эту ошибку:

поднять exception_class (сообщение, экран, трассировка стека) selenium.common.exceptions.ElementClickInterceptedException: Сообщение: щелчок по элементу перехвачен: Элемент... не доступен для щелчка в точке (616, 132). Другой элемент получит щелчок: (Информация о сеансе: chrome=87.0.4280.88)

У кого-нибудь есть идеи, в чем проблема?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
255
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не можете обработать исключение Element без NoSuchElementException

Если первый щелчок не работает, попробуйте следующее:

from selenium.common.exceptions import NoSuchElementException

try:
    element = driver.find_element_by_xpath(".//button[@id = "oc_cb_btn"]")
    elem.click()
except NoSuchElementException:
    error.append("None")

для второго щелчка попробуйте это:

from selenium.common.exceptions import NoSuchElementException

try:
    driver.find_element_by_xpath(xpath).click()
except NoSuchElementException:
    pass

Надеюсь, это сработает. Дайте нам знать.

Другие вопросы по теме