【问题标题】:How to get visible text from a webpage using Selenium & python?如何使用 Selenium 和 python 从网页中获取可见文本?
【发布时间】:2020-02-15 01:06:17
【问题描述】:

我正在尝试获取一堆数字,这些数字显示在我使用 python 和 Selenium 在 Raspberry Pi 上无头运行的网页上的表格中。这些数字不在页面源代码中,而是深深嵌入在由主页调用的几个 URL 提供的复杂 html 中(数字每隔几秒更新一次)。我知道我可以解析 html 以获得我想要的数字,但是这些数字已经以完美的格式出现在首页上,都集中在一个地方。当我在 PC 上的 Chrome 中查看网页时,我可以选择和复制数字。

如何使用 python 并获取 Selenium webdriver 来获取这些数字? Selenium 可以简单地提供页面上的所有可见文本吗?如何? (我试过driver.page_source 但返回的文本不包含数字)。或者有没有办法使用 python 和 Selenium 从屏幕上可见的表格中复制文本和数字? (我查看了 xdotool,但没有找到足够的文档来提供帮助)。我只是在学习 Selenium,所以任何建议都将不胜感激!

【问题讨论】:

  • HTML 是什么样的(例如,通过浏览器检查时)?如果您可以识别包含文本的 HTML 元素,则可以使用.text 来检索它。例如:stackoverflow.com/questions/20996392/…

标签: python selenium selenium-webdriver


【解决方案1】:

嗯,我想出了问题的答案。这很容易尴尬。这一行得到了我所需要的——网页上可见的所有文本:

page_text = driver.find_element_by_tag_name('body').text

【讨论】:

    【解决方案2】:

    因此,在某些不同的情况下,您无法在页面上获取某些信息:

    • 信息尚未加载。您必须等待一段时间才能准备好您的信息。您可以观看this theme 以获得更好的理解。有时你会用 JS 等动态添加页面元素,加载速度很慢。
    • 信息可能包含不同类型的数据。例如,您正在等待带有数字的文本,但您可能会在页面上获得带有数字的图片。在这种情况下,您必须改变您的编程策略并使用其他函数来获得您需要的东西。

    【讨论】:

      猜你喜欢
      • 2011-12-18
      • 1970-01-01
      • 1970-01-01
      • 2021-04-08
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多