を、関数は次のように定義されていますパラメータとしての機能を渡す - BeautifulSoupのドキュメントでBeautifulSoup
def has_class_but_no_id(tag):
return tag.has_attr('class') and not tag.has_attr('id')
そして関数にパラメータとして渡された:find_all()
:
soup.find_all(has_class_but_no_id)
私が驚いたのは、それがうまくいったことです。私は実際にどのようにメカニズムが働いているのか分かりませんが、この機能(has_class_but_no_id
)は、機能するためのパラメータを持たずにfind_all()
関数の値を返します。
例の中で何が起こっているのかを説明するために、これを拡張します。find_all()は、ページ内のすべてのタグを処理しています。それぞれに対して、関数への引数として渡しています(上記のように)。その関数がTrueを返すところでは、それは出力されるタグの最終リストに追加されます。すべてのタグのリストに対してfind_all(True)を実行することによって、その機能をテストできます。 –