![](/img/trans.png)
[英]Python beautiful soup TypeError : find() takes no keyword arguments
[英]Python beautiful soup arguments
我有這個代碼,使用BeautifulSoup從頁面中獲取一些文本
soup= BeautifulSoup(html)
body = soup.find('div' , {'id':'body'})
print body
我想把它作為一個可重用的函數,它接受一些htmltext和標簽來匹配它,如下所示
def parse(html, atrs):
soup= BeautifulSoup(html)
body = soup.find(atrs)
return body
但是,如果我這樣打電話
parse(htmlpage, ('div' , {'id':'body'}")) or like
parse(htmlpage, ['div' , {'id':'body'}"])
我只得到div元素,body屬性似乎被忽略了。
有沒有辦法解決這個問題?
def parse(html, *atrs):
soup= BeautifulSoup(html)
body = soup.find(*atrs)
return body
接着:
parse(htmlpage, 'div', {'id':'body'})
我想你只需要在這里添加一個星號:
body = soup.find(*atrs)
沒有星號,你傳遞一個參數,這是一個元組:
body = soup.find(('div' , {'id':'body'}))
使用星號,元組擴展出來,語句變得等同於你想要的:
body = soup.find('div' , {'id':'body'})
有關使用*args
表示法和相關**kwargs
更多信息,請參閱此文章 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.