2014-11-30 2 views
0

Так что я использую robobrowser, который использует bs4. Когда я пытаюсь стричь теги из строк, я получаю ошибку, описанную ниже. Если я прокомментирую i.strip("</b>"), тогда я могу легко распечатать список строк с тегами на концах. Возможно боян: TypeError: 'NoneType' object is not callable, BeautifulSoupRoboBrowser TypeError: объект «NoneType» не может быть вызван

from robobrowser import RoboBrowser as r 


browser = r(history=False) 
browser.open('http://mp3skull.com/') 
usrsearch = "a-ha" #input('Search for music: ') 

searchform = browser.get_form(action="/search_db.php") 
searchform['q'].value = usrsearch 
browser.submit_form(searchform) 

songs = browser.select('b') 
for i in songs: 
    print(i.strip("</b>")) 

Ошибка:

line 13, in <module> 
i.strip("</b>") 
TypeError: 'NoneType' object is not callable 
+0

У меня нет ответов или каких-либо взглядов на этот счет. Эти 14 просмотров - мои собственные. Удар? – facetiousfactorial

ответ

0

Вы можете использовать encode_contents(), чтобы получить содержимое тега как байтовой строки, без самого тега.

from robobrowser import RoboBrowser as r 

browser = r(history=False) 
browser.open('http://mp3skull.com/') 
usrsearch = "a-ha" #input('Search for music: ') 

searchform = browser.get_form(action="/search_db.php") 
searchform['q'].value = usrsearch 
browser.submit_form(searchform) 

songs = browser.select('b') 
for i in songs: 
    print(i.encode_contents()) 

я не смог найти информацию о всех свойствах тега BeautifulSoup4 и методов в official documentation. Однако я нашел this page, в котором содержится дополнительная информация о свойствах и методах.