gpt4 book ai didi

python - 如何通过xpath提取html dom内文本节点的文本?

转载 作者:行者123 更新时间:2023-12-01 09:25:51 26 4
gpt4 key购买 nike

我正在尝试访问网络数据库以获取某些数学论文的分类。在下面的 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:]

但这似乎不起作用,如果我打印结果,它不会打印任何内容。是否可能是因为我尝试进行额外的文本分割而遇到此错误?我只想要“数学”,而不是“Web of Science 类别:数学”,因此我将结果拆分为 26 个字符。

编辑:所以经过一些进一步的测试,似乎我确实得到了结果,但它没有打印,因为我的Python代码只看到“Web of Science Categories:”自然,在第26个字符处分割这个字符串将打印没有什么。然而,这提出了一个新的难题:如何实际获取“数学”而不是“Web of Science 类别:”

最佳答案

根据您提供的用于提取文本数学的 HTML,您可以使用以下代码行:

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

关于python - 如何通过xpath提取html dom内文本节点的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50403498/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com