如何使用Selenium和python从网页获取可见文本?

时间:2019-10-18 04:33:45

标签: python selenium selenium-webdriver

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

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

2 个答案:

答案 0 :(得分:0)

因此,在某些情况下,为什么您无法在页面上获得一些信息:

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

答案 1 :(得分:0)

好吧,我想出了我问题的答案。令人尴尬的容易。此行正是我所需要的-网页上可见的所有文本:

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