2013-12-24 29 views
1

Я получаю данные xml от api.careerbuilder.com В частности, строка содержит некоторые html-объекты, которые я хочу удалить, без эффекта!Удаление html-тегов и сущностей из строки в python

Я попытался сделать это:

import re 
re.sub('\<.*?\>', '', job_title_text) 

и это

from html.parser import HTMLParser 
class MLStripper(HTMLParser): 
    def __init__(self): 
     self.reset() 
     self.fed = [] 
    def handle_data(self, d): 
     self.fed.append(d) 
    def get_data(self): 
     return ''.join(self.fed) 

def strip_tags(html): 
    s = MLStripper() 
    s.feed(html) 
    return s.get_data() 

strip_tags(job_title_text) 

и, наконец, это

import lxml.html 
(lxml.html.fromstring(job_title_text)).text_content() 

Но все они были неудачными. Второй подход удалил html-объекты, такие как «& amp», но текст внутри тегов остался, например, «pbrspan». Третий один полностью разрушила все, никаких данных не было показано на всех, а

< связанный метод HtmlElement.text_content из < элементов HTML в 0x33717d8>>

Наконец, я подозреваю, что у меня есть регулярное выражение написанное совершенно неверно. Любые идеи, как это можно обрабатывать?

+0

' text_content' - это метод, а не атрибут - это значит, что вам нужно вызвать его ('text_content()'), чтобы он мог принести что-нибудь полезное. –

+0

@MaxNoel ах, извините, вы правы, это опечатка –

ответ

1

Попробуйте это регулярное выражение

(\ & л \;) * (\ & GT \;).?

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