繁体   English   中英

使用 Python XPath lxml package 刮掉<span>标签</span>中的文字

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

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

<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 中的路径是从 Chrome 的 Inspect 元素功能复制/粘贴路径的结果。

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

编辑:这是来自 Chrome 的 Inspect 页面信息的屏幕截图: 在此处输入图像描述

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

尝试类似:

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

output 应该是12

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM