python - html 标签中的正则表达式

标签 python html regex html-parsing

我想从以下 HTML 片段中解析高清价格。我只有 html 代码片段,所以我不能为此使用 HTML 解析器。

<div id="left-stack">        
  <span>View In iTunes</span></a>
 <span class="price">£19.99</span>
 <ul class="list">
    <li>HD Version</li>

基本上,格式是“在“HD 版本”一词之前查找价格(不区分大小写)。这是我目前所拥有的:

re.match(r'^(\d|.){1,6}...HD\sVersion', string)

我如何从上面的字符串中提取值“19.99”?

最佳答案

BeautifulSoupvery lenient对于它解析的 HTML,您也可以将它用于 HTML 的 block /部分:

# -*- coding: utf-8 -*-
from bs4 import BeautifulSoup

data = u"""
<div id="left-stack">
  <span>View In iTunes</span></a>
 <span class="price">£19.99</span>
 <ul class="list">
    <li>HD Version</li>
"""

soup = BeautifulSoup(data)
print soup.find('span', class_='price').text[1:]

打印:

19.99

关于python - html 标签中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25798289/

相关文章:

javascript - 如何仅替换捕获的组?

c# - 正则表达式运算符的顺序 (..|.. ... ..|..)

python - UnicodeEncodeError : 'charmap' codec can't encode character (in Python 3. 3)

python - lark 语法 : How does the escaped string regex work?

python - sqlite 游标 fetchone() 返回 'NoneType' ?

javascript - 更新禁用字段的表单记录

javascript - 从代码隐藏和代码隐藏中的脚本调用函数内部调用 JavaScript(PageMethods 未定义)

javascript - 现有函数不是函数?

Python:使用 pandas 导入 csv。尝试绘制一列,但出现错误,提示 "no numerical data to plot"

python - 用其他项目替换 python 列表理解中 dict 中的单个值