簡體   English   中英

Python美麗的湯參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM