python - 提取具有混合元素类型的表数据

标签 python selenium selenium-webdriver

我正在尝试使用 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/

相关文章:

java - 错误 :cannot get automation extension for chrome with selenium

firefox - 如何使用 Java 在 Selenium WebDriver 中设置自动检测代理设置

python - Selenium Python : Unable to locate element

python - PyQt 没有 button.clicked.connect 功能?

python - 带有 IAM 用户凭证的 Boto 403 AccessDenied 异常,适用于 Cyber​​duck 和 AWS Web 控制台

python - 从 Python 使用 OpenCV TLD

java - 使用selenium获取页面源代码,如何在没有firefox的服务器上使用我的代码?

python - Google chrome 与 selenium 一起启动后立即关闭

selenium - 需要使用Selenium设置Chromium Edge浏览器的下载目录

python - 函数返回后将列表清空