我对python和selenium库不太熟悉,所以我在处理看似简单的任务时遇到了问题。所以,我知道如何从一个表中获取所有链接:
elems = driver.find_elements_by_css_selector (". <table class> [href]")
但我不需要所有的链接,只需要那些满足特定条件的链接,所以我组织for循环,首先找到所有的表行:
rows = table.find_elements (By.TAG_NAME, "tr")
for row in rows:
表中的每一行看起来都是这样的:
<tr>
<td> ... </td>
<td> ... </td>
...
<td> <a href= "..."> </a> </td>
<td> ... </td>
...
</tr>
如果我以这种方式找到合适的列
href_data = row.find_elements (By.TAG_NAME, "td")[Nr]
然后尝试获取带有标签的链接元素:
href_link = href_data.find_elements (By.TAG_NAME, "a")
那么由于的进一步输出,显然返回了一个空对象
print (href_link.get_attribute ("href"))
总是会产生错误。我做错了什么?
如果行中只有CCD_ 1元素,则是那些包含CCD_,提取行之后
rows = table.find_elements (By.TAG_NAME, "tr")
for row in rows:
您应该使用直接提取href_links
href_link = row.find_elements(By.TAG_NAME, "a")
所以现在你可以了
print (href_link.get_attribute ("href"))
所以整个代码应该是:
rows = table.find_elements (By.TAG_NAME, "tr")
for row in rows:
href_link = row.find_element(By.TAG_NAME, "a")
print (href_link.get_attribute ("href"))