Il faut maintenant installer les fonctions nécessaires au bon fonctionnement de notre fichier.
-def nettoie >
def nettoie (self, html):
html = html.replace("\n", "
")
expr =
re.compile("<script.*?</script>", re.U)
html = expr.sub(" ",
html)
expr =
re.compile("<style.*?</style>", re.U)
html = expr.sub(" ",
html)
expr =
re.compile("<.*?>")
text = expr.sub(" ",
html)
text =
text.replace(" ", " ")
text = re.sub(" +", " ",
text)
return text
Cette fonction permet d'obtenir un texte brut.
-def on_lineEdit_returnPressed >
def on_lineEdit_returnPressed(self):
Slot documentation goes here.
self.on_pushButton_clicked()
Cette fonction sert à avoir accès au site web inscrit dans la "lineedit" en appuyant uniquement sur entrer
-def on_pushButton_clicked >
@pyqtSignature()
def on_pushButton_clicked(self):
Slot documentation goes here.
url = unicode(self.lineEdit.text())
if not url.startswith(http://) : url=http://+url
self.webView.setUrl(QtCore.QUrl(url))
self.statusbar.setText(loading +url)
Cette fonction permet de charger la page avec le "pushbutton",
complète l'adresse du site si besoin
et montre que le téléchargement est en cours.
-def on_webView_loadFinished >
def on_webView_loadFinished (self):
self.statusbar.setText(unicode(self.webView.url().toString())+"
Chargement termine")
html =
unicode(self.webView.page().mainFrame().toHtml())
text = self.nettoie(html)
self.textEdit.setText(text)
langue = self.langue(text)
self.label.setText(langue)
Cette fonction sert à récupérer le code Html de la page,
vient ensuite le nettoyage, le texte brut est alors affiché
dans un "textedit".
-def langue >
def langue (self, text):
langues =
{"en":"anglais,"fr":u"français,"all":"allemand"}
dicoMots={}
resultat=[]
for langue in langues:
fichier = open("liste"+langue+".txt")
texte = fichier.read()
expr
= re.compile("\W+", re.U)
liste = expr.split(texte)
dicoMots[langue]=liste
listeinc=text.split()
for langue in langues:
compteurmots=0
for
mot in listeinc:
if mot in dicoMots[langue]: compteurmots+=1
resultat+=[(compteurmots,langue)]
resultat.sort()
print resultat
print "la page est en"+langues [resultat [-1][1]]+ "!"
return langues [resultat[-1][1]]
Cette fonction compare le site web avec les textes anglais,
français et allemand, pour déterminer la langue du site web.
Voici le résultat que vous devez acquérir:
Ou pour un site allemand :