使用混合元素类型提取表数据

时间:2016-09-07 22:24:43

标签: python selenium selenium-webdriver

我正在尝试使用Python和Selenium从表中提取数据,但是一些列在gif和text之间有混合。当我打印文本元素时,它返回文本以及空格是gif元素在列中。但是,当我打印gif元素时,它会返回表中的所有gif(而不仅仅是列)而没有任何文本字段的空格。任何想法如何从列中提取两种元素类型?感谢。

表示例:

<td class="X">
<div class="default-value">Not Applicable</div>
</td>

posts = driver.find_elements_by_class_name("x")
   for post in posts:
   print(post.text)

文字代码

for element in driver.find_elements_by_tag_name('img'):
    print(element.get_attribute("src"))

gif代码

<base href="/">

1 个答案:

答案 0 :(得分:2)

首先查找所有td元素,然后为每个td决定是否要获取src元素的文本或img属性:

posts = driver.find_elements_by_css_selector("td.x")
for post in posts:
    images = post.find_elements_by_tag_name("img")
    if images:
         print(images[0].get_attribute("src"))
    else:
         print(post.text)