Удаление всего пробела из строки HTML
Я пытаюсь реализовать код, который удаляет все пробелы и пробелы, а затем подсчитывает 3 верхних буквенно-цифровых символа, встречающихся на странице. Мой вопрос двоякий.
1) Кажется, что метод, который я использую для split, не работает, и я не уверен, почему он не работает. Насколько мне известно, при объединении разделение должно удалить все пробелы и пробелы из исходного кода html, но это не так (см. Первое возвращаемое значение из примера amazon ниже).
2) Я не очень знаком с операцией most_common, и когда я тестировал свой код на " http://amazon.com/", я получаю следующий вывод:
The top 3 occuring alphanumeric characters in the html of http://amazon.com
: [(u' ', 258), (u'a', 126), (u'e', 126)]
Что означает u в возвращаемых значениях most_common(3)?
Мой текущий код:
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
1 ответ
Чтобы позаботиться о пробелах, вам нужно использовать экземпляр HTMLParser.HTMLParser и его unescape
способ избавиться от любых необработанных символов HTML, лежащих вокруг. Чтобы посчитать персонажей, вы должны проверить коллекции. Счетчик.
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])