Python 2.7 - 结合剥离空格和 HTML 标记



我正在寻找使用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()我得到干净的文本,前后都有很多空格。有什么解决方案吗?

谢谢!

我使用了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"}):

最新更新