簡體   English   中英

如何通過xpath提取html dom中文本節點的文本?

[英]How to extract the text of a text node within an html dom through xpath?

我正在嘗試訪問網絡數據庫以對某些數學論文進行分類。 在下面的 HTML 中,“數學”將是所需的結果。 類別還包括“應用數學”和“統計學”。 具體來說,我想在這個在線數據庫的不同網站上為許多不同的數學論文迭代執行這個過程,但我無法搜索特定的 xpath,因為 xpath 因論文而異。

HTML代碼:

<p class="FR_field">
    <span class="FR_label">Web of Science Categories:</span>Mathematics</p>

例如,“數學”位於

//*[@id="records_form"]/div/div/div/div[1]/div/div[8]/p[2]/text()

對於該特定紙張,但 p 標簽或 div 標簽之一的索引可能因紙張而異。 我編寫的用於查找類別的代碼是

用於遠程訪問的 Python 代碼:

driver.find_element_by_xpath("//*[contains(text(), 'Web of Science Categories:')]").text[26:]

但這似乎不起作用,如果我打印結果,它不會打印任何內容。 可能是因為我嘗試進行額外的文本拆分而遇到此錯誤嗎? 我只想要“數學”而不是“科學網類別:數學”,所以我將結果拆分為 26 個字符。

編輯:所以經過一些進一步的測試,似乎我確實得到了結果,但它沒有打印,因為我的 python 代碼只看到“Web of Science Categories:”自然,在第 26 個字符處拆分此字符串將不會打印任何內容。 然而,這提出了如何真正獲得“數學”而不是“科學網絡類別”的新難題:

根據您提供的用於提取文本數學的 HTML,您可以使用以下代碼行:

text1 = driver.find_element_by_xpath("//p[@class='FR_field']").get_attribute("innerHTML").splitlines()[2]

暫無
暫無

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

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