0

所以我使用的是使用bs4的 robobrowser。当我尝试从字符串中剥离标签时,我得到了下面描述的错误。如果我注释掉,i.strip("</b>")那么我可以轻松地打印带有标签的字符串列表。可能的欺骗:TypeError:'NoneType'对象不可调用,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
4

1 回答 1

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 标签属性和方法的信息。但是,我确实找到了这个页面,其中列出了有关属性和方法的更多信息。

于 2015-02-18T19:11:25.190 回答