硒:get_attribute returns None

Selenium: get_attribute returns None

我想抓取 某些网页中 <div> 标签内的所有 link。例如,一段 HTML-code 看起来像这样:

<div class="item_text">         
        <a href="https://perm.aif.ru/culture/details/edinstvennyy_v_rossii_v_solikamske_otkrylsya_novyy_korporativnyy_muzey">
                        <h3>Единственный в России. В Соликамске открылся новый корпоративный музей</h3>
        </a>
    </div>

我想得到link:https://perm.aif.ru/culture/details/edinstvennyy_v_rossii_v_solikamske_otkrylsya_novyy_korporativnyy_muzey

所以我使用 问答来编写这段代码:

from selenium import webdriver

driver = webdriver.Firefox()
link = "https://perm.aif.ru/"
driver.get(link)

elems = driver.find_elements_by_class_name("item_text")
links = [elem.get_attribute('href') for elem in elems]

print(links)

但它 return 给我带来了这个:

[None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None, None]

这不是我期望看到的。我该如何解决?为什么此代码 return 列在 None 上?

我用这个:

链接包含在 a 个元素中,这些元素包含在 div 个名称为 class 的元素 item_text 中,而不是直接包含在这些 divs 中。
你可以这样做:

from selenium import webdriver
import time

driver = webdriver.Firefox()
link = "https://perm.aif.ru/"
driver.get(link)

time.sleep(10)
elems = driver.find_elements_by_css_selector(".item_text a")
links = [elem.get_attribute('href') for elem in elems]

print(links)

我还添加了睡眠以确保在我们获取链接之前加载页面