Я пытаюсь удалить данные с нескольких страниц на сайте, используя selenium
в python
. Синтаксис запускает и удаляет данные на первой странице, но после второй страницы не может найти кнопку щелчка и прекратить очистку. Я проверяю HTML коды веб-страницы, но элемент на второй странице такой же, как элемент на первой странице. Я нашел этот вопрос , связанный с той же проблемой. Я думаю, что проблема вызвана тем, что ссылка на кнопку теряется после изменения DOM
, но я все еще не могу исправить проблему должным образом. Буду признателен за любые предложения или решения. Синтаксис и результаты приведены ниже:
browser = webdriver.Chrome(r"C:\Users\...\chromedriver.exe")
browser.get('https://fortune.com/global500/2019/walmart')
table = browser.find_element_by_css_selector('tbody')
data =[]
#Use For Loop for Index
i = 1
while True:
if i > 5:
break
try:
print("Scraping Page no. " + str(i))
i = i + 1
# Select rows in the table
for row in table.find_elements_by_css_selector('tr'):
cols = data.append([cell.text for cell in row.find_elements_by_css_selector('td')])
try:
WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.XPATH,'//span[@class="singlePagination__icon--2KbZn"]')))
time.sleep(10)
finally:
browser.find_element_by_xpath('//span[@class="singlePagination__icon--2KbZn"]').click()
except Exception as e:
print(e)
break
data1 = pd.DataFrame(data, columns=['Labels','Value'])
print(data1)
browser.close()
вывод :
Scraping Page no. 1
Scraping Page no. 2
Message: stale element reference: element is not attached to the page document
(Session info: chrome=....)
Labels Value
0 (...) (...)
1 (...) (...)