На poundwire внутри тега <title>
есть символ табуляции. Есть также некоторые пробелы (отступы, которые вы, вероятно, увидите, если вы «просматриваете источник»), которые вы, вероятно, тоже хотите удалить.
Как говорит самплебиас, используйте strip()
, чтобы удалить пробелы на обоих концах строки. И получите текстовый редактор с режимом «видимых пробелов», включите этот режим и никогда больше не выключайте его, никогда: -)
Кстати, если вы используете Google App Engine, это означает, что вы используете Python 2.5, что, в свою очередь, означает, что str
- это не строковый тип Unicode. BeautifulSoup делает все возможное, чтобы принудительно вводить данные в Unicode, поэтому стыдно выбрасывать исключение, когда вы попадаете на страницу, заголовок которой содержит не-ASCII символы.
[Редактировать: третий случай
$ python
Python 2.6.5 (r265:79063, Jun 12 2010, 17:07:01)
[GCC 4.3.4 20090804 (release) 1] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from BeautifulSoup import BeautifulSoup
>>> import urllib
>>> soup = BeautifulSoup(urllib.urlopen('http://code.google.com/p/google-refine/'))
>>> soup.html.head.title.string
u'\\n google-refine -\\n \\n \\n Google Refine, a power tool for working with messy data (formerly Freebase Gridworks) - Google Project Hosting\\n '
>>>
Итак, пробел в конце означает, что ваш rstrip
не удаляет \n
рядом с концом.