RoboBrowser TypeError:' NoneType'对象不可调用

时间:2014-11-30 21:54:10

标签: python web-scraping robobrowser

所以我使用的是使用bs4的robobrowser。当我尝试从字符串中剥离标记时,我得到下面描述的错误。如果我注释掉i.strip("</b>"),那么我可以轻松打印带有标签的字符串列表。可能的欺骗:TypeError: 'NoneType' object is not callable, BeautifulSoup

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

1 个答案:

答案 0 :(得分: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())

我无法找到有关official documentation中所有BeautifulSoup4标记属性和方法的信息。但是,我确实发现this page列出了有关属性和方法的更多信息。