Python 3 & Selenium - Как объединить несколько циклов - Соскоб веб-таблицы - PullRequest
0 голосов
/ 15 января 2020

Я совершенно новичок в Python (и переполнении стека), я пытаюсь найти эффективный способ извлечения данных из таблицы на внутреннем веб-сайте, который имеет несколько страниц.

следующий код работает нормально, но так как веб-сайт имеет 16 страниц, мне нужно, пожалуйста, найти способ, чтобы просто это для L oop.

Любая помощь будет принята с благодарностью. Спасибо

\\\

first = '//*[@id="container"]/table/tbody/tr['
second ="]/td["
last = "]"

for n in range(1,rows+1):
    for m in range(1,cols+1):
        final_path = (first+str(n)+second+str(m) + last)
        table = driver.find_element_by_xpath(final_path).text
        print(table, end= " ")
    print()

#  - Click on Page 2 and get all the table data from there.

driver.find_element_by_link_text("2").click()

for n in range(1,rows+1):
    for m in range(1,cols+1):
        final_path = (first+str(n)+second+str(m) + last)
        table = driver.find_element_by_xpath(final_path).text
        print(table, end= " ")
    print()

#  - Click on Page 3 and get all the table data from there.

driver.find_element_by_link_text("3").click()

for n in range(1,rows+1):
    for m in range(1,cols+1):
        final_path = (first+str(n)+second+str(m) + last)
        table = driver.find_element_by_xpath(final_path).text
        print(table, end= " ")
    print()

\\\

Спасибо.

1 Ответ

0 голосов
/ 15 января 2020

Вы можете добавить другое вложение для l oop.

for page_no in range(2, 17): # 2...16
    driver.find_element_by_link_text(str(page_no)).click()

    for n in range(1,rows+1):
        for m in range(1,cols+1):
            final_path = (first+str(n)+second+str(m) + last)
            table = driver.find_element_by_xpath(final_path).text
            print(table, end= " ")
        print()
...