Python 3.x 从跨度标题中提取信息
我的html如下所示:Python 3.x 从跨度标题中提取信息,python-3.x,xpath,lxml,Python 3.x,Xpath,Lxml,我的html如下所示: <h3>Current Guide Price <span title="92"> 92 </span></h3> 现行指导价92 我想得到的信息是92 这里是另一个html页面,我需要在其中获取相同的数据: <h3>Current Guide Price <span title="4,161"> 4,161 </span></h3>
<h3>Current Guide Price <span title="92"> 92
</span></h3>
现行指导价92
我想得到的信息是92
这里是另一个html页面,我需要在其中获取相同的数据:
<h3>Current Guide Price <span title="4,161"> 4,161
</span></h3>
当前指导价4161
我需要从这个页面获取4161
以下是该页面的链接供参考:
我所尝试的:
/h3/span[@title=“92”]@title
/h3/span[@title=“92”]/text()
/div[@class=“stats”]/h3/span[@title=“4161”]@title
由于我需要的信息是在实际的span标记中,所以很难以动态方式获取数据,以便我可以用于许多不同的页面
from lxml import html
import requests
baseUrl = 'http://services.runescape.com/m=itemdb_oldschool/viewitem?obj=2355'
page = requests.get(baseUrl)
tree = html.fromstring(page.content)
price = tree.xpath('//h3/span')
price2 = tree.xpath('//h3/span/@title')
for p in price:
print(p.text.strip())
for p2 in price2:
print(p2)
在这两种情况下,输出都是
92
。是span
标记中title
属性的值始终与
标记的文本值相同吗?@JackFleeting Yes。因此,如果您知道在xpath表达式中使用哪个属性值,那么您也知道
标记中的文本;那么到底是什么问题呢?@JackFleeting这些我都不知道。我所知道的唯一一件事是,它总是以文本“当前指导价”作为前缀。我发现这两个词都有无效的表达式错误。这里是一个代码共享@Purin-我忘了lxml不支持规范化-text()
;见编辑后的答案。