我正在寻找使用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"}):