簡體   English   中英

使用 Selenium 和 Python 抓取文本值

[英]Scraping text values using Selenium with Python

對於 ERP 系統中的每個供應商(供應商總數 = 800+),我正在收集其數據並將此信息導出為 pdf 文件。 我將 Selenium 與 Python 結合使用,創建了一個名為 Scraper 的類,並定義了多個函數來自動執行此任務。 函數gather_vendors 負責抓取並通過從標簽元素中提取文本值來完成此操作。

每個供應商都有一個稱為 EFT 管理器的部分。 EFT 管理器有 9 行我從中提取:

在此處輸入圖片說明

對於#2 和#3,兩者都有字符串值(划掉機密信息)。 但是,#3 返回 null。 我不明白為什么當有文本值要提取時,#3 繼續返回 null。

在此處輸入圖片說明

每個元素的代碼格式是相同的。

在此處輸入圖片說明

我嘗試切換幀,但沒有奏效。 我試圖從編輯模式中抓取,但效果不佳。 我很好奇是否有人遇到過類似的情況。 似乎無論我做什么,我都無法獲得某些價值觀……我很感激任何關於我應該如何進行的建議或見解。 謝謝你。

為什么不嘗試使用

find_element_by_class_name("panelList").find_elements_by_tag_name('li')

收集所有的 li 元素。 並使用li.text來檢索它們的文本值。 除了你說“返回空值”之外,很難說出你的實際輸出是什么

  1. 嘗試使用visibility_of_element_located而不是presence_of_element_located
  2. 嘗試使用 javascript fo 元素獲取 textContent 給定 (python) selenium WebElement 我可以獲取 innerText 嗎?

    element = driver.find_element_by_id('txtTemp_creditor_agent_bic') text= driver.execute_script("返回屬性[0].textContent", element)

以下是對我有用的內容:

  1. 擺脫 try/except 塊。
  2. 通過 ID(不是 xpath)查找元素。

這使我可以從以前無法提取的元素中提取文本。

您應該將提取網頁元素的方式更改為 ID,因為所有方面都提供了不同的id 如果您想使用 xpaths,那么您應該嘗試使用 JavaScript 函數來查找它們。

例如

//span[text()='Bank Name']

暫無
暫無

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

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