2009-07-20 5 views
3

Я пытаюсь сделать некоторые простые манипуляции со строками с атрибутом 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 в нормальную строку?

ответ

8

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

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

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

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

+1

Также стоит отметить, что строка Unicode будет иметь все те же методы, что и регулярная строка. – dbr

0

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

regular_string = str(href) 
Смежные вопросы