Dans la liste d'articles du système de blog, afin de présenter le contenu de l'article plus efficacement et de permettre aux lecteurs de choisir de lire de manière plus ciblée, le titre et le résumé de l'article sont généralement fournis en même temps.
Le contenu d'un article peut être au format texte brut, mais de nos jours avec la popularité d'Internet, il est davantage au format HTML. Quel que soit le format, le résumé constitue généralement le contenu du début de l'article et peut être extrait en fonction du nombre de mots spécifié.
Résumé en texte brut
Nous extrayons d'abord le résumé en texte brut. Le document en texte brut est une longue chaîne, et il est facile d'extraire son résumé :
#!/usr/bin/env python # -*- coding: utf-8 -*- """Get a summary of the TEXT-format document""" def get_summary(text, count): u"""Get the first `count` characters from `text` >>> text = u'Welcome 这是一篇关于Python的文章' >>> get_summary(text, 12) == u'Welcome 这是一篇' True """ assert(isinstance(text, unicode)) return text[0:count] if __name__ == '__main__': import doctest doctest.testmod()
Résumé HTML
Les documents HTML contiennent un grand nombre de balises (telles que
Afin d'intercepter le contenu tout en suivant la structure du document HTML, vous devez analyser le document HTML. En Python, cela peut être fait à l'aide de la bibliothèque standard HTMLParser.
L'une des fonctions d'extraction d'extraits de code les plus simples consiste à ignorer les balises HTML et à extraire uniquement le texte natif à l'intérieur des balises. Ce qui suit est une implémentation Python similaire à cette fonction :
#!/usr/bin/env python # -*- coding: utf-8 -*- """Get a raw summary of the HTML-format document""" from HTMLParser import HTMLParser class SummaryHTMLParser(HTMLParser): """Parse HTML text to get a summary >>> text = u'<p>Hi guys:</p><p>This is a example using SummaryHTMLParser.</p>' >>> parser = SummaryHTMLParser(10) >>> parser.feed(text) >>> parser.get_summary(u'...') u'<p>Higuys:Thi...</p>' """ def __init__(self, count): HTMLParser.__init__(self) self.count = count self.summary = u'' def feed(self, data): """Only accept unicode `data`""" assert(isinstance(data, unicode)) HTMLParser.feed(self, data) def handle_data(self, data): more = self.count - len(self.summary) if more > 0: # Remove possible whitespaces in `data` data_without_whitespace = u''.join(data.split()) self.summary += data_without_whitespace[0:more] def get_summary(self, suffix=u'', wrapper=u'p'): return u'<{0}>{1}{2}</{0}>'.format(wrapper, self.summary, suffix) if __name__ == '__main__': import doctest doctest.testmod()
Ce qui précède est le contenu du [tutoriel PYTHON] pour extraire des résumés d'articles. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www. .php.cn) !