我正在尝试使用 Python 和 Selenium 从表中提取数据,但是一些列混合了 gif 和文本。当我打印文本元素时,如果 gif 元素位于列内,它会返回文本和空白。但是,当我打印 gif 元素时,它返回表中的所有 gif(而不仅仅是列),文本字段没有任何空白。有什么想法可以如何从列中提取两种元素类型?谢谢。
表格示例:
<td class="X">
<img src="/a/b/c/d.gif">
<td>
和
<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)
gif 代码
for element in driver.find_elements_by_tag_name('img'):
print(element.get_attribute("src"))
最佳答案
查找全部 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)
关于python - 提取具有混合元素类型的表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39379903/