python selenium:如何导航到网页中的某个页面选项卡

时间:2017-02-06 14:48:41

标签: python selenium

我正在为一个网页中的多个网页进行网页抓取。 但是当我点击第2页时,网址显示http://www.worldhospitaldirectory.com/Germany/hospitals#page-2

我把这个网址作为下一个导航位置。它直接进入 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

3 个答案:

答案 0 :(得分:1)

尝试点击分页上的相应按钮

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

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

答案 1 :(得分:1)

获取元素按钮

button_next = driver.find_element_by_xpath('//a[@class='page-link next'])
button_next.click()

我让算法为你迭代所有页面

答案 2 :(得分:0)

这对我有用

while pagenbr <= 3:
    current = driver.current_url
    print current
    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()
    driver.implicitly_wait(10)
    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)


    pagenbr += 1