div.children返回迭代器。
for div in nsoup.find_all(class_='cities'):
for childdiv in div.find_all('div'):
print (childdiv.string) #london, york
AttributeError的升高,因爲非標籤像'\n'
在.children
。只需使用適當的子選擇器來查找特定的div。
(更多編輯)無法重現你的異常 - 這裏是我做了什麼:
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'是孩子的序列,其中每一個都有'contents'。序列本身沒有「內容」。就像'[1,2,3]'不是一個整數。同時,像任何順序一樣,爲了獲得第一個值,你可以'next(iter(div.children))'。 – abarnert 2013-03-19 04:06:46