2015-06-18 3 views
0

Я ищу возможность снять 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() я получаю чистый текст с большим количеством белого пространства до и после него. Любые решения?

Спасибо!

ответ

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"}):

+0

Спасибо за ответы. 'join()' производит 'TypeError: объект« NoneType »не является вызываемым'. – ikechi

Смежные вопросы