Python 如何找到网页中某些元素的URL?

Python 如何找到网页中某些元素的URL?,python,selenium,Python,Selenium,网页为: 如您所见,此页面的“销售”部分中有25个项目,当您单击它们时,它将打开一个新选项卡,并向您显示特定项目的详细信息。 现在我想制作一个程序来获取这25个项目的URL并将它们保存在一个列表中,我的问题是,正如您在PageInspect中看到的,它们的标记应该是,而且我找不到任何与它们相关的“href”属性 # using selenium and driver = webdriver.Chrome() link = driver.find_elements_by_tag_name('a')

网页为:

如您所见,此页面的“销售”部分中有25个项目,当您单击它们时,它将打开一个新选项卡,并向您显示特定项目的详细信息。 现在我想制作一个程序来获取这25个项目的URL并将它们保存在一个列表中,我的问题是,正如您在PageInspect中看到的,它们的标记应该是,而且我找不到任何与它们相关的“href”属性

# using selenium and driver = webdriver.Chrome()
link = driver.find_elements_by_tag_name('a')
link2 = [l.get_attribute('href') for l in link]

我想我可以用上面的代码来做,但问题是我说了什么。有什么建议吗?

看起来您正试图刮取一个由react驱动的页面。没有
href
标记,因为javascript正在为所有链接供电。您最好使用selenium单击每个
div
对象,切换到新选项卡,并使用类似于以下代码的内容来获取它带您访问的页面的URL:

import time
links = driver.find_elements_by_class_name('card-header')
urls = []
for link in links: 
    new_page = link.click()
    driver.switch_to.window(driver.window_handles[1])
    url = driver.current_url
    urls.append(url)
    driver.close()
    driver.switch_to.window(driver.window_handles[0])
    time.sleep(1)

请注意,代码每次关闭新选项卡并返回主选项卡。我添加了
time.sleep()?