正则提取html网页中字符串

方式一:

RULES = [
    [r'<style[\s\S]*?</style>', ''],
    [r'<script[\s\S]*?</script>', ''],
    [r'</(div|h|p)>', '\n'],
    [r'<br.*?>', '\n'],
    [r'<[^>]+?>', ''],
    [r'&nbsp;', ' '],
    [r'&amp;', '&'],
    [r'&lt;', '<'],
    [r'&gt;', '>'],
    [r'&quot;', '"'],
    [r'^[\n\s]*', ''],
    [r'^\s+', ' '],
    [r'^[\s\S]*?Description', ''],
    [r'Payment[\s\S]*$', ''],
]
result = reduce(lambda desc, rule: re.sub(rule[0], rule[1], desc, flags=re.I | re.M), RULES, description).strip()
print(result)

方式二:

result = description
result = re.sub(r'<style[\s\S]*?</style>', '', result, flags=re.I | re.M)
result = re.sub(r'</(div|h|p)>', '\n', result, flags=re.I | re.M)
result = re.sub(r'<br.*?>', '\n', result, flags=re.I | re.M)
result = re.sub(r'<[^>]+?>', '', result, flags=re.I | re.M)
result = re.sub(r'&nbsp;', ' ', result, flags=re.I | re.M)
result = re.sub(r'&amp;', '&', result, flags=re.I | re.M)
result = re.sub(r'&lt;', '<', result, flags=re.I | re.M)
result = re.sub(r'&gt;', '>', result, flags=re.I | re.M)
result = re.sub(r'&quot;', '"', result, flags=re.I | re.M)
result = re.sub(r'^[\n\s]*', '', result, flags=re.I | re.M)
result = re.sub(r'^[\s\S]*?Description', '', result, flags=re.I | re.M)
result = re.sub(r'Payment.*?$', '', result, flags=re.I | re.M)
result = result.strip()

print(result)
相关文章
相关标签/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
公众号推荐
   一个健康类的公众号,欢迎关注
小青桔健康