我的目标是访问链接列表(位于"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', ...]
那我该怎么办?
答案 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]