comment extraire le texte spécifié en HTML à l'aide de SGMLParser
Question
j'ai créer une classe étendue SGMLParser:
class URLLister(SGMLParser):
def __init__(self):
SGMLParser.__init__(self)
def start_title(self, attrs):
pass
def handle_data(self, data):
print data
très très simple code.IMO start_title
a été invoquée quand il est venu à travers <title>
tag, et handle_data
a été invoquée quand il est venu à travers le texte normal.maintenant, je veux extraire le texte entre <title>
et </title>
, par exemple
<html><head><title>Webpage title</title></head><body>Simple text</body></html>
je veux imprimer le Webpage title
entre <title>
tag, mais en utilisant handle_data
tag je vais la production de tous les simples de texte, y compris Webpage title
et Simple text
.comment simplement la sortie du texte entre <title>
tag?
La solution
Vraiment, vous pouvez simplement ajouter une codé en dur à vérifier handle_data
comme suit:
def handle_data(self, data):
tag = self.get_starttag_text().replace("<","").replace(">","")
tag_words = tag.split(" ")
if len(tag_words) > 0 and tag_words[0].endswith("title"):
print data
Je ne suis pas sûr si c'est ce que tu voulais exactement, et je suis sûre qu'il y a de plus élégant réponse.