使用 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 的页面信息的屏幕截图:
试试这样的东西:
for el in tree.xpath('//span[./b[.="Armor Class"]]/text()'):
print(el)
输出应该是12
.
我正在尝试从网页上的标签中获取文本。使用 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 的页面信息的屏幕截图:
试试这样的东西:
for el in tree.xpath('//span[./b[.="Armor Class"]]/text()'):
print(el)
输出应该是12
.