我正在为一个网页中的多个网页进行网页抓取。 但是当我点击第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
答案 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