Как получить таблицу данных на другой странице, используя селен python - PullRequest
0 голосов
/ 13 апреля 2020

У меня проблема при очистке таблицы данных со страницами. Я не могу взять данные на другой странице, кто-нибудь может мне помочь?

data = soup.find('div', {'id':'provinsi_wrapper'}).find('table', {'id':'provinsi'})

header_table = []
for tag in data.find('thead').findAll('th'):
    header_table.append(tag.text)

list_table = []
if len(header_table) == 5:
     while True != driver.find_element_by_xpath('//*[@id="provinsi_next"]'):
        for row in data.find('tbody').findAll('tr'):
            list_per_kota = []
            for kota in row.findAll('td'):
                list_per_kota.append(kota.text)
            list_table.append(list_per_kota)
        hal = driver.find_element_by_xpath('//*[@id="provinsi_next"]/a').click()

Проблема в том, что:

Итерация результата - те же данные, а не данные на другой странице до конца

Ошибка:

ElementClickInterceptedException          Traceback (most recent call last)
<ipython-input-18-a3f16a70ba82> in <module>
     13                 list_per_kota.append(kota.text)
     14             list_table.append(list_per_kota)
---> 15         hal = driver.find_element_by_xpath('//*[@id="provinsi_next"]/a').click()

D:\Anaconda\lib\site-packages\selenium\webdriver\remote\webelement.py in click(self)
     78     def click(self):
     79         """Clicks the element."""
---> 80         self._execute(Command.CLICK_ELEMENT)
     81 
     82     def submit(self):

D:\Anaconda\lib\site-packages\selenium\webdriver\remote\webelement.py in _execute(self, command, params)
    631             params = {}
    632         params['id'] = self._id
--> 633         return self._parent.execute(command, params)
    634 
    635     def find_element(self, by=By.ID, value=None):

D:\Anaconda\lib\site-packages\selenium\webdriver\remote\webdriver.py in execute(self, driver_command, params)
    319         response = self.command_executor.execute(driver_command, params)
    320         if response:
--> 321             self.error_handler.check_response(response)
    322             response['value'] = self._unwrap_value(
    323                 response.get('value', None))

D:\Anaconda\lib\site-packages\selenium\webdriver\remote\errorhandler.py in check_response(self, response)
    240                 alert_text = value['alert'].get('text')
    241             raise exception_class(message, screen, stacktrace, alert_text)
--> 242         raise exception_class(message, screen, stacktrace)
    243 
    244     def _value_or_default(self, obj, key, default):

ElementClickInterceptedException: Message: element click intercepted: Element <a href="#" aria-controls="provinsi" data-dt-idx="5" tabindex="0" class="page-link">...</a> is not clickable at point (291, 521). Other element would receive the click: <li class="paginate_button page-item next disabled" id="provinsi_next">...</li>
  (Session info: chrome=80.0.3987.163)

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...