2016-08-08 20 views
2

Was ist der Unterschied? Tun sie nicht das Gleiche - finden Sie die Inside-Tags mit bestimmten Eigenschaften?BeautifulSoup Unterschied zwischen findAll und findChildren

+1

Kinder hängen bleiben, was für einen Tag enthält und gibt eine Genera tor - find_all findet alle Instanzen eines bestimmten Tags und gibt eine Liste zurück. – n1c9

+0

@ n1c9 Sieht so aus, als wäre es falsch .. – parsecer

Antwort

1

findChildren eine resultSet kehrt wie find_all hat, gibt es keinen Unterschied in der mit beiden Methoden als findChildren tatsächlich ist find_all, wenn Sie auf dem Link zur Quelle können Sie sehen:

findChildren = find_all # BS2 

Es ist dort für die Kompatibilität rückwärts als findAll = find_all # BS3

+0

Warum also die gleiche Funktion mit anderem Namen? Stimmt es, wenn wir annehmen, dass wir drei (!) Funktionen haben, die dasselbe Ergebnis (ResultSet - Liste der gefundenen Tags) mit der gleichen Länge und den gleichen Elementen - 'findAll',' findChildren' und 'find_all' liefern ? – parsecer

+1

@parsecer, * Rückwärtskompatibilität *, wenn ich bs2 Code hätte, hätte ich nur 'findChildren', wenn ich bs3 Code hätte, hätte ich nur' findAll'. –

+0

Also als es bs2 gab, gab es nur 'findChildren' (und kein' findAll' oder 'find_all'), dann kam die nächste bs Version und es gab' findAll = findChildren' (kein 'find_all',' findChildren' war übrig unberührt), und jetzt haben wir bs4, wo 'find_all = findAll = findChildren' (' findAll' und 'findChildren' aus Kompatibilitätsgründen unberührt bleiben). Ist das richtig? – parsecer