我正在尝试从具有通过 NEXT 按钮
链接的多个页面的网站中抓取数据连续页面URL与上一个页面URL没有对应关系
(在这种情况下,修改路径就可以解决问题)
这是我计划要做的-
1。从初始URL开始
2。提取信息
3。单击下一步
重复2次和3次 n 次
具体地说,我想知道如何在单击
时获取新页面的URL。这是我到目前为止提出的内容
def startWebDriver():
global driver
options = Options()
options.add_argument("--disable-extensions")
driver = webdriver.Chrome(executable_path = '/path/to/driver/chromedriver_linux64/chromedriver',options=options)
#URL of the initial page
driver.get('https://openi.nlm.nih.gov/detailedresult.php?img=CXR1_1_IM-0001-3001&query=&coll=cxr&req=4&npos=1')
time.sleep(4)
#XPATH of the "NEXT" button
element = driver.find_element_by_xpath('//*[@id="imageClassM"]/div/a[2]/img').click()
任何帮助将不胜感激
答案 0 :(得分:0)
如果您想获取单击下一步后的页面的网址, 试试这个。
print(browser.current_url)
或
print(driver.current_url)
答案 1 :(得分:0)
也许您可以尝试这样的事情:
from selenium import webdriver
from selenium.webdriver import ChromeOptions
import time
if __name__ == "__main__":
options = ChromeOptions()
options.add_argument("--disable-extensions")
#start driver
driver = webdriver.Chrome(options=options)
#load first page
driver.get('https://openi.nlm.nih.gov/detailedresult.php?img=CXR1_1_IM-0001-3001&query=&coll=cxr&req=4&npos=1')
for i in range(3): #However many of these links to click
time.sleep(4) # let each page load
driver.find_element_by_xpath('//*[@id="imageClassM"]/div/a[2]/img').click()
print(driver.current_url)
这会为我加载页面(我删除了您关于chrome驱动程序路径的一些知识,因为我的驱动程序位于同一文件夹中)。但是确实出现错误,并且看起来很生气driver.find_element_by_xpath('//*[@id="imageClassM"]/div/a[2]/img').click()
说:
selenium.common.exceptions.ElementNotVisibleException:消息:元素不可见
我不确定如何解决此问题,因为我在网页上没有看到“下一步”按钮...我确定您可以解决这个问题!
答案 2 :(得分:0)
driver.current_url()
您可能需要先等待页面加载。