Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Я рекомендовал бы BeautifulSoup для очистки HTML. Также необходимо сказать этому преобразовывать объекты HTML в соответствующие символы Unicode, как так:
>>> from BeautifulSoup import BeautifulSoup
>>> html = "<html>ÄÄRITALO!</html>"
>>> soup = BeautifulSoup(html, convertEntities=BeautifulSoup.HTML_ENTITIES)
>>> print soup.contents[0].string
ÄÄRITALO!
(Было бы хорошо, если бы стандартный модуль кодеков включал кодек для этого, такого, что Вы могли сделать "some_string".decode('html_entities')
но к сожалению это не делает!)
Править: Другое решение: у разработчика Python Fredrik Lundh (автор elementtree, среди прочего) есть функция к unsecape объектам HTML на его веб-сайте, который работает с десятичным числом, шестнадцатеричные и именованные сущности (BeautifulSoup не будет работать с шестнадцатеричными).
Попытайтесь использовать BeautifulSoup. Это должно добиться цели и дать Вам приятно отформатированный DOM для работы с также.
Эта запись в блоге, кажется, имела некоторый успех с ним.
Я не попробовал его сам, но имею Вас попробованный
http://zesty.ca/python/scrape.html?
Это, кажется, имеет метод htmldecode (текст), который сделал бы то, что Вы хотите.