Ich möchte die Daten, die dort in den verschachtelten divs ist Ich kann es nicht bekommen.Schöne Suppe verschachtelt div rekursiv erhalten Text
Es gibt verschachtelte div Ich brauche die Daten ordnungsgemäß formatiert werden.
Ich habe das BS4 Modul geschrieben, aber ich habe einen Fehler
BeautifulSoup: Attribute: 'NavigableString' Objekt hat kein Attribut 'name'
Bitte helfen Sie mir!
Mein HTML
<div id="new">
<div id="newDat">
<div class="Data">
<div class="DataNew">
<div class="DataNew new">
<div class="Data Left">
<div class="name"><a class="name" href="">Jack Daniels</a></div>
<div class="details"><span class="loc">Barcelona</span></div>
<div class="header"><a class="looking"> Looking for meeting new people</a></div>
<div class="ideas"><a class="ideas">I have new ideas</a></div>
<div class="profile"> <em class="profilss"></em>MS in cs<br></div>
</div>
<div class="Data Right">
<a class="phone"><span class="txt">+123123123123123231</span></a>
</div>
</div>
</div>
</div>
<div class="DataOne">
<div class="DataNew">
<div class="DataNew new">
<div class="Data Left">
<div class="name"><a class="name" href="">Jack Daniels</a></div>
<div class="details"><span class="loc">Barcelona</span></div>
<div class="header"><a class="looking"> Looking for meeting new people</a></div>
<div class="ideas"><a class="ideas">I have new ideas</a></div>
<div class="profile"> <em class="profilss"></em>MS in cs<br></div>
</div>
<div class="Data Right">
<a class="phone"><span class="txt">+123123123123123231</span></a>
</div>
</div>
</div>
</div>
<div class="DataTwo">
<div class="DataNew">
<div class="DataNew new">
<div class="Data Left">
<div class="name"><a class="name" href="">Jack Daniels</a></div>
<div class="details"><span class="loc">Barcelona</span></div>
<div class="header"><a class="looking"> Looking for meeting new people</a></div>
<div class="ideas"><a class="ideas">I have new ideas</a></div>
<div class="profile"> <em class="profilss"></em>MS in cs<br></div>
</div>
<div class="Data Right">
<a class="phone"><span class="txt">+123123123123123231</span></a>
</div>
</div>
</div>
</div>
<div class="DataThree">
<div class="DataNew">
<div class="DataNew new">
<div class="Data Left">
<div class="name"><a class="name" href="">Jack Daniels</a></div>
<div class="details"><span class="loc">Barcelona</span></div>
<div class="header"><a class="looking"> Looking for meeting new people</a></div>
<div class="ideas"><a class="ideas">I have new ideas</a></div>
<div class="profile"> <em class="profilss"></em>MS in cs<br></div>
</div>
<div class="Data Right">
<a class="phone"><span class="txt">+123123123123123231</span></a>
</div>
</div>
</div>
</div>
</div>
</div>
My Beautiful Soup-Code
li = page.find('div', {'id': 'new'})
for tag in li:
for i in tag.find_all("div", {"class": "name"}):
print i.getText()
break
for i in tag.find_all("div", {"class": "details"}):
print i.getText()
break
for i in tag.find_all("div", {"class": "header"}):
print i.getText()
break
for i in tag.find_all("div", {"class": "ideas"}):
print i.getText()
break
for i in tag.find_all("div", {"class": "profile"}):
print i.getText()
break
for i in tag.find_all("div", {"class": "phone"}):
print i.getText()
break
Ich möchte die Ausgabe wie diese
Div one
Name : Jack Daniels
Details : Barcelona
header : Looking for meeting new people
ideas : I have new ideas
profile: MS in cs
tel : +123123123123123231
Div two
Name : Jack Daniels
Details : Barcelona
header : Looking for meeting new people
ideas : I have new ideas
profile: MS in cs
tel : +123123123123123231
Und so weiter.
Wenn ich 100 Divs innerhalb der <div id = "new">
habe, brauche ich den Ausgang wie folgt.
Warum haben Sie all diese For-Schleifen mit 'Break' nach der 1. Iteration? Sie könnten einfach 'find' verwenden, zB:' tag.find ("div", {"class": "name"}). Text' –
Danke @tmadam Ich habe es versucht, aber ich brauche den Inhalt div von div –