【发布时间】:2012-06-12 04:13:21
【问题描述】:
可能重复:
Extracting text from HTML file using Python
Parsing Source Code (Python) Approach: Beautiful Soup, lxml, html5lib difference?
目前有一个大型网页,其源代码约为 200,000 行几乎所有(如果不是全部)HTML。更具体地说,它是一个网页,其内容是由换行符分隔的几千块文本(尽管换行符并不具体意味着内容中有分隔)
我的主要目标是从源代码中提取文本,就像我将网页复制/粘贴到文本编辑器中一样。我想使用另一个解析函数,它最初接收复制/粘贴的文本而不是源代码。
为此,我目前正在使用 urllib2,并在 Beautiful Soup 中调用 .get_text()。问题是,Beautiful Soup 在我的代码中留下了大量的空白,并且很难将结果传递给第二个“文本”解析器。我已经对解析 HTML 进行了大量研究,但坦率地说,我不确定如何轻松解决这个问题。此外,我对如何使用 lxml 之类的导入来提取文本有点困惑。
tl;博士:有没有什么方法可以实现像我在网页上进行全选、复制、粘贴一样的结果?
【问题讨论】:
-
为了清楚起见,HTML 不是源代码。这是标记。
-
如果您有解决方案,但唯一的问题是空白太多,您就不能删除多余的空白吗?试试
re.sub(r"\s+", " ", text)。 -
--大卫 感谢您的指正! @GregHewgill 那会删除原始网页中存在的部分间距,不是吗?我拥有的另一个解析函数在其函数中使用这些空格作为各种分隔符,所以我不想删除它们。 ):
-
你为什么要多次发布这个问题?