Удаление всего пробела из строки 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])
Другие вопросы по тегам