from mechanize import Browser
br = Browser()
br.open('http://somewebpage')
html = br.response().readlines()
for line in html:
  print line

当打印HTML文件中的一行时,我试图找到一种只显示每个HTML元素的内容而不显示格式本身的方法.如果找到'<a href="whatever.com">some text</a>'个,它只会打印‘一些文本’,打印'<b>hello</b>'个‘你好’,等等.该怎么做呢?

推荐答案

我总是使用这个函数剥离HTML标记,因为它只需要Python stdlib:

对于Python 3:

from io import StringIO
from html.parser import HTMLParser

class MLStripper(HTMLParser):
    def __init__(self):
        super().__init__()
        self.reset()
        self.strict = False
        self.convert_charrefs= True
        self.text = StringIO()
    def handle_data(self, d):
        self.text.write(d)
    def get_data(self):
        return self.text.getvalue()

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

对于Python 2:

from HTMLParser import HTMLParser
from StringIO import StringIO

class MLStripper(HTMLParser):
    def __init__(self):
        self.reset()
        self.text = StringIO()
    def handle_data(self, d):
        self.text.write(d)
    def get_data(self):
        return self.text.getvalue()

def strip_tags(html):
    s = MLStripper()
    s.feed(html)
    return s.get_data()

Python相关问答推荐

我对打乒乓球有问题

替换为Pandas

tempfile.mkstemp(text=.)参数实际上是什么?

Pandas 密集排名具有相同值,按顺序排列

OdooElectron 商务产品详情页面中add_qty参数动态更新

合并其中一个具有重叠范围的两个框架的最佳方法是什么?

尽管进程输出错误消息,subProcess.check_call的CalledProcess错误.stderr为无

Polars -转换为PL后无法计算熵.列表

inspect_asm不给出输出

创建带有二维码的Flask应用程序,可重定向到特定端点

opencv Python稳定的图标识别

SQLGory-file包FilField不允许提供自定义文件名,自动将文件保存为未命名

PyQt5,如何使每个对象的 colored颜色 不同?'

我对我应该做什么以及我如何做感到困惑'

SQLAlchemy Like ALL ORM analog

如何从数据库上传数据到html?

如何从需要点击/切换的网页中提取表格?

判断solve_ivp中的事件

Maya Python脚本将纹理应用于所有对象,而不是选定对象

(Python/Pandas)基于列中非缺失值的子集DataFrame