2017-03-02 6 views
0

Ich versuche Code zu implementieren, der alle Leer- und Leerzeichen entfernt und dann die oberen drei alphanumerischen Zeichen auf der Seite zählt. Meine Frage ist zweifach.Entfernen aller Leerzeichen aus der HTML-Zeichenfolge

1) Die Methode, die ich für Split verwende, scheint nicht zu funktionieren und ich bin mir nicht sicher, warum es nicht funktioniert. Nach bestem Wissen sollte Joining und Splitting alle Leerzeichen und Leerstellen aus dem HTML-Quellcode entfernen, aber das ist es nicht (siehe ersten Wert von amazon Beispiel unten).

2) Ich bin nicht sehr vertraut mit dem most_common Betrieb und wenn ich meinen Code getestet auf „http://amazon.com“ Ich bekomme die folgende Ausgabe:

The top 3 occuring alphanumeric characters in the html of http://amazon.com 
: [(u' ', 258), (u'a', 126), (u'e', 126)] 

Was bedeutet die u in dem zurück most_common bedeuten (3) Werte?

Mein aktueller Code:

import requests 
import collections 


url = raw_input("please eneter the url of the desired website (include http://): ") 

response = requests.get(url) 
responseString = response.text 

print responseString 

topThreeAlphaString = " ".join(filter(None, responseString.split())) 

lineNumber = 0 

for line in topThreeAlphaString: 
    line = line.strip() 
    lineNumber += 1 

topThreeAlpha = collections.Counter(topThreeAlphaString).most_common(3) 

print "The top 3 occuring alphanumeric characters in the html of", url,": ", topThreeAlpha 
+0

Es bedeutet, dass es eine Unicode-Zeichenfolge ist. Sie sind mit einem Leerzeichen '' ".join (...)' 'join()' 'verbinden Sie einfach mit einem leeren String' "" .join (...) ' – AChampion

Antwort

0

Zur Pflege von Leerzeichen zu nehmen, möchten Sie eine Instanz von HTMLParser.HTMLParser und seiner unescape Methode verwenden, von irgendwelchen rohen HTML-Zeichen herumliegen, um loszuwerden. Um die Charaktere zu zählen, solltest du collections.Counter ausprobieren.

import requests 
from collections import Counter 
from HTMLParser import HTMLParser 

response = requests.get('http://www.example.com') 
responseString = response.text 

parser = HTMLParser() 
c = Counter(''.join(parser.unescape(responseString).split()) 

print(c.most_common()[:3]) 
Verwandte Themen