簡體   English   中英

如何使用 Selenium 和 python 從網頁獲取可見文本?

[英]How to get visible text from a webpage using Selenium & python?

我正在嘗試獲取在 web 頁面上的表格中顯示的一堆數字,我使用 python 和 Selenium 在 Raspberry Pi 上無頭運行。 這些數字不在頁面源中,而是深深嵌入在由主頁調用的幾個 URL 提供的復雜 html 中(數字每隔幾秒更新一次)。 我知道我可以解析 html 來獲得我想要的數字,但是這些數字已經以完美的格式出現在首頁上。 當我在 PC 上的 Chrome 中查看 web 頁面時,我可以 select 並復制數字。

如何使用 python 並獲取 Selenium webdriver 來獲取這些數字? Selenium 可以簡單地提供頁面上的所有可見文本嗎? 如何? (我試過driver.page_source但返回的文本不包含數字)。 或者有沒有辦法使用 python 和 Selenium 從屏幕上可見的表格中復制文本和數字? (我查看了 xdotool 但沒有找到足夠的文檔來提供幫助)。 我只是在學習 Selenium 所以任何建議都將不勝感激!

因此,有一些不同的情況導致您無法在頁面上獲取某些信息:

  • 信息尚未加載。 您必須等待一段時間才能准備好您的信息。 您可以觀看此主題以獲得更好的理解。 有時你會用 JS 等動態添加頁面元素,加載速度很慢。
  • 信息可能由不同類型的數據組成。 例如,您正在等待帶有數字的文本,但您可能會在頁面上獲得帶有數字的圖片。 在這種情況下,你必須改變你的編程策略並使用其他函數來獲得你需要的東西。

好吧,我想出了我的問題的答案。 這很容易尷尬。 這一行得到了我所需要的——web 頁面上可見的所有文本:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM