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