Простой вопрос типа Python / Beautiful Soup - PullRequest
3 голосов
/ 20 июля 2009

Я пытаюсь выполнить несколько простых операций со строками с помощью атрибута href гиперссылки, извлеченной с использованием Beautiful Soup :

from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup('<a href="http://www.some-site.com/">Some Hyperlink</a>')
href = soup.find("a")["href"]
print href
print href[href.indexOf('/'):]

Все, что я получаю, это:

Traceback (most recent call last):
  File "test.py", line 5, in <module>
    print href[href.indexOf('/'):]
AttributeError: 'unicode' object has no attribute 'indexOf'

Как мне преобразовать href в обычную строку?

Ответы [ 3 ]

8 голосов
/ 20 июля 2009

Python-строки не имеют метода indexOf.

Использование href.index('/')

href.find('/') аналогично. Но find возвращает -1, если строка не найдена, тогда как index поднимает ValueError.

Поэтому правильнее всего использовать index (поскольку '...' [- 1] вернет последний символ строки).

0 голосов
/ 20 июля 2009

Вы имеете в виду find (), а не indexOf ().

Документы Python для строк .

0 голосов
/ 20 июля 2009

href - это строка в юникоде. Если вам нужна обычная строка, используйте

regular_string = str(href)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...