BeautifulSoup get_text de ne pas supprimer toutes les balises et JavaScript

Je suis en train d'utiliser BeautifulSoup à obtenir le texte des pages web.

Ci-dessous est un script que j'ai écrit pour le faire. Elle prend deux arguments, le premier est l'entrée de fichier HTML ou XML, le deuxième fichier de sortie.

import sys
from bs4 import BeautifulSoup

def stripTags(s): return BeautifulSoup(s).get_text()

def stripTagsFromFile(inFile, outFile):
    open(outFile, 'w').write(stripTags(open(inFile).read()).encode("utf-8"))

def main(argv):
    if len(sys.argv) <> 3:
        print 'Usage:\t\t', sys.argv[0], 'input.html output.txt'
        return 1
    stripTagsFromFile(sys.argv[1], sys.argv[2])
    return 0

if __name__ == "__main__":
    sys.exit(main(sys.argv))

Malheureusement, pour de nombreuses pages web, par exemple: http://www.greatjobsinteaching.co.uk/career/134112/Education-Manager-Location
J'obtiens quelque chose comme ça (je suis en montrant seulement quelques premières lignes):

html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
    Education Manager  Job In London With  Caleeda | Great Jobs In Teaching

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-15255540-21']);
_gaq.push(['_trackPageview']);
_gaq.push(['_trackPageLoadTime']);

Il n'y a rien de mal avec mon script? J'ai essayé de passer 'xml' comme second argument de BeautifulSoup du constructeur, ainsi que "html5lib" et "lxml", mais il ne l'aide pas.
Est-il une alternative à BeautifulSoup qui est la meilleure pour cette tâche? Tout ce que je veux est d'extraire le texte qui sera rendu dans un navigateur pour cette page web.

Toute aide sera très appréciée.

Double Possible: stackoverflow.com/questions/1936466/...
Merci, je ne l'avais pas vu quand j'ai demandé à ma question. Il n'est point dans une bonne direction, mais il n'est pas parfait, car il ne supprime pas tous les JS et les commentaires.

OriginalL'auteur piokuc | 2012-05-09