2016-06-27 3 views
-2

私はページ上のいくつかのデータを削り取り、各ページからデータフレームにテーブルを抽出し、 "次へ"ボタンをクリックして、もう利用できなくなるまで2ページ目のデータを削りたいと思います。どのように私はこのHTML構造でそれを行うことができます。python - それはもはや利用できなくなるまで、セレニウムの "次へ"をクリックする方法?

<div class="dataTables_paginate paging_bootstrap pagination"> 
<ul> 
    <li class="active"><a href="javascript:void(0);">First</a></li> 
    <li class="active"><a href="javascript:void(0);">Prev</a></li> 
    <li p="1" class="active" onclick="loadDataByPage(1);"> 
    <a href="javascript:void(0);" style="color:#0D88CB">1</a> 
    </li> 
    <li p="2" class="inactive" onclick="loadDataByPage(2);"> 
    <a href="javascript:void(0);">2</a> 
    </li> 
    <li p="3" class="inactive" onclick="loadDataByPage(3);"> 
    <a href="javascript:void(0);">3</a> 
    </li> 
    <li p="2" class="inactive" onclick="loadDataByPage(2);"> 
    <a href="javascript:void(0);" style="color:#0D88CB">Next</a> 
    </li> 
    <li onclick="loadDataByPage(490);" class="inactive"> 
    <a href="javascript:void(0);" style="color:#0D88CB">Last</a> 
    </li>     
</ul> 
</div> 
+0

あなたはのリンクを提供してくださいすることができますページ?次のリンクをクリックするには、 'driver.find_element(By.XPATH、 '// a [contains(text()、" Next ")]))をクリックし、それが利用できなくなるまであなたが 'try:driver.find_element(By.XPATH、 '// a [contains(text()、" Next ")]')。をクリックしてwhileループを使用します。しかしそうでなければそれはしません。 – ands

答えて

1

あなたは以下のようにloopingを使用する必要があります -

from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 

wait = WebDriverWait(driver, 10) 

while True: 
# scrape some data on a page and extract table 

# click next link 
try: 
    element = wait.until(EC.visibility_of_element_located((By.XPATH, "//a[contains(text(), 'Next')]"))) 
    element.click() 
except TimeoutException: 
    break 

が、それは..あなたを助けることを願っています:)

関連する問題