标签内的访问属性

时间:2020-09-02 12:34:51

标签: python selenium

我的目标是访问链接列表(位于"event?id=85042"中)。

<tr class="gvrow"> == $0
  <td>...</td>
  <td>
    <a href="event?id=85042"
                                text
                              </a>
  </td>

  ...

这也重复一遍,所以我想获得位于event?id = ...中的链接的列表。 我从这个问题Python Selenium - get href value开始尝试了这种方法,但是它返回的列表中没有None

primary_links = driver.find_elements_by_class_name('gvrow')
links = [elem.get_attribute('href') for elem in primary_links]
print(links)

输出:

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

所需的输出:

['https://www.iccf.com/event?id=85042', 'https://www.iccf.com/event?id=79897', 'https://www.iccf.com/event?id=66745', ...]

那我该怎么办?

这是html的更好表示 enter image description here

1 个答案:

答案 0 :(得分:1)

使用以下代码行,您将获得一个包含<td>元素和任何其他具有class=gvrow元素的列表:

driver.find_elements_by_class_name('gvrow')

很明显,您返回的<td>元素没有href属性。

代替您的方法,您可以使用另一种方法来获取链接:

a_elements = driver.find_elements_by_xpath("//tr[@class='gvrow']/td/a")
links = [a_element.get_attribute('href') for a_element in a_elements]