我需要从任何网站上提取所有段落

时间:2012-09-14 18:20:26

标签: html html-parsing

我需要随机网站并从网站上提取所有文本块。

我称之为“消除歧义”(请参阅​​维基百科中的“消除歧义”)。

我不在乎这些块本身是否包含其他HTML,或者在我提取段落文本后我可以删除这些。

我还需要区分段落,这是第1段,这是第2段,依此类推。

我知道大多数段落通常都包含在

标签中。但情况并非总是如此。文本也可以包含在以下内容中:

<div>
<span>
<td>
<li>

是否有任何其他HTML元素可能包含一个文本块?

是否有其他方法可以从随机网页中提取文本块,例如查找“白色单词”然后找到它们的边界?

提前致谢

杰夫

2 个答案:

答案 0 :(得分:0)

几乎所有HTML元素都可能包含文本:

  • P
  • DT
  • DD
  • TD

此刻我还记得更多。看一下 Complete list of HTML tags ,看看哪个适合包含文字,哪个不适合。

答案 1 :(得分:0)

使用Python的Beautiful Soup并在body元素上调用.get_text()。这将为您提供页面中的所有文字。

来自Documentation on get_text()

>>> markup = '<a href="http://example.com/">\nI linked to <i>example.com</i>\n</a>'
>>> soup = BeautifulSoup(markup)
>>> soup.get_text()
u'\nI linked to example.com\n'