div.children 'Inhalt' gibt einen Iterator.
for div in nsoup.find_all(class_='cities'):
for childdiv in div.find_all('div'):
print (childdiv.string) #london, york
Attribute wurde angehoben, wegen Nicht-Tags wie '\n'
in .children
sind. Verwenden Sie einfach den richtigen Child-Selektor, um das spezifische div zu finden.
(mehr bearbeiten) können Sie Ihre Ausnahmen nicht reproduzieren - hier ist das, was ich getan habe:
In [137]: print foo.prettify()
<div class="cities">
<div id="3232">
London
</div>
<div id="131">
York
</div>
</div>
In [138]: for div in foo.find_all(class_ = 'cities'):
.....: for childdiv in div.find_all('div'):
.....: print childdiv.string
.....:
London
York
In [139]: for div in foo.find_all(class_ = 'cities'):
.....: for childdiv in div.find_all('div'):
.....: print childdiv.string, childdiv['id']
.....:
London 3232
York 131
'children' ist eine Folge von Kindern, von denen jeder' contents' hat. Die Sequenz selbst hat keinen Inhalt. Es ist genau wie '[1, 2, 3]' ist keine Ganzzahl. In der Zwischenzeit kann man, wie bei jeder anderen Sequenz, den ersten Wert "nur" (iter (div.children)) '. – abarnert