2017-02-06 20 views
1

1つのウェブページで複数のページを持つウェブサイトのウェブスクレイピングを行っていました。 しかし、2ページ目をクリックすると、URLはhttp://www.worldhospitaldirectory.com/Germany/hospitals#page-2と表示されました。python selenium:ウェブページの特定のページタブに移動する方法

次に、このURLを次のナビゲーション場所に設定します。そしてそれは直接 http://www.worldhospitaldirectory.com/Germany/hospitals#page-1に行きます。これはデフォルトのページです。

これらのサブページに移動する方法はありません。 提案やコードはありますか?今

私のコード:

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Firefox() 
driver.get('http://www.worldhospitaldirectory.com/Germany/hospitals') 
url = [] 
pagenbr = 1 

while pagenbr <= 43: 
    current = driver.current_url 
    driver.get(current) 
    lks = driver.find_elements_by_xpath('//*[@href]') 
    for ii in lks: 
     link = ii.get_attribute('href') 
     if '/info' in link: 
      url.extend(link) 
      print (link) 
    print('page ' + str(pagenbr) + ' is done.') 
    elm = driver.find_element_by_link_text('Next') 
    driver.implicitly_wait(10) 
    elm.click() 
    pagenbr += 1 
+1

使用しているコードを提供できますか? – brittenb

+0

コードを更新します。@ brittenb –

答えて

1

だけ

driver.find_element_by_link_text('Next') # to get next page 

または

driver.find_element_by_link_text('2') # to get second page 
+0

私のコードを更新しました。それは新しいページに反復して働いた。しかし、私は新しいものに反復する。私のコードでは、初めてリンクを引き出すことはできません。 –

+0

'url.extend(link)'に何ができると思いますか?あなたは 'url.append(link)'を意味しますか? – Andersson

+0

はい。私は追加するためにそれを変更することを忘れました。 –

0

取得要素ボタン

button_next = driver.find_element_by_xpath('//a[@class='page-link next']) 
button_next.click() 
0123と改ページの適切なボタンをクリックしてください

アルゴリズムを使用してすべてのページを繰り返し処理します

+0

Thxしかし、私は各新しいページに反復した後、私は新しいページからリンクを引っ張るために自分のループを作ることができません。見てみませんか?今すぐコードを更新します。 –

+0

おそらくクリックしたときに寝る必要があります。スクリプトの実行はウェブのロードよりも速いので – Wonka

+0

ええ、完全に読み込むのを待つ時間があります。 –

関連する問題