使用 Python XPath lxml 包在 <span> 标签中抓取文本

Using Python XPath lxml package to scrape text in <span> tag

我正在尝试从网页上的标签中获取文本。使用 Chrome 的检查元素功能,我看到我想要的文本如下:

<span id>
    <b> Armor Class </b>
    " 12"
</span>

我只想要上面的文字“12”。为此,我有以下 python 代码:

from lxml import html
import requests, os, json
page = requests.get(webString)
tree = html.fromstring(page.content)

monsterArmor = tree.xpath('/html/body/div[1]/span[2]/text()')
print(monsterArmor)

monsterArmor 中存在的路径是 copy/pasting 来自 Chrome 的检查元素功能的路径的结果。

当我打印它时,它 returns 是一个空列表,[ ]。我不确定我做错了什么。我见过类似的问题,但它们似乎都涉及 etree,并且给出的所有示例似乎都将信息硬编码到其中,而不是抓取它。

编辑:这是来自 Chrome 的 Inspect 的页面信息的屏幕截图:

编辑:页面 URL https://jsigvard.com/dnd/monster.php?m=Aarakocra

试试这样的东西:

for el in tree.xpath('//span[./b[.="Armor Class"]]/text()'):
   print(el)

输出应该是12.