我正在寻找使用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()
我会在它之前和之后获得带有大量空白区域的干净文本。对此有何解决方案?
谢谢!
答案 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"}):