结合剥离空格和html标签

时间:2015-06-18 16:39:57

标签: python-2.7 beautifulsoup

我正在寻找使用Beautiful Soup从解析后的文本中去除html标签和空白区域的可能性。问题是我无法将这两者结合起来。

以下是整个脚本:

# -*- coding: utf-8 -*-

from urllib2 import urlopen
from bs4 import BeautifulSoup as bs

word = "Drop"
url = ('http://civil.ge/eng/category.php?id=10')
soup = bs(urlopen(url).read())
titz = soup.find("div", {"class": "archtype_category_block"})

for t in titz.find_all('div', {'class': 'archive_type_article_title'}):
    if word in t.encode('utf-8').strip():
        print t.prettify()   

prettify()的结果是:

<div class="archive_type_article_title">
 Prosecutors Drop Objection to Release of Ex-MoD Officials from Pretrial     Detention
</div>

并且使用get_text()我会在它之前和之后获得带有大量空白区域的干净文本。对此有何解决方案?

谢谢!

1 个答案:

答案 0 :(得分:1)

我使用的是Python 3,并且无法重现间距问题。所以也许这就是答案!

我会将print t.prettify()更改为print t.prettify().join(mystring.split())并查看是否可以解决您的问题。

此外,您的代码只会获得第一个archtype_category_block,也许这就是您想要的,但如果您想要所有这些代码,则必须将titz = soup.find("div", {"class": "archtype_category_block"})更改为for titz in soup.find_all("div", {"class": "archtype_category_block"}):