Ich habe vor kurzem eine sehr nette Art der Web-Verschrottung mit bs4 gefunden, die eine wirklich gut organisierte Struktur hat. lassen Sie uns sagen, dass dies unsere HTML-Code ist:Wie man Schleife anwendet, um Inhalte von "DIV" -Tag zu extrahieren, während Schöne Suppe verwendet wird?
<div class="a">
<div class="b">
<a href="www.yelloaes.com">'hi'</a>
</div>
<div class ="c">
<p><a href="www.bb.com">'hi again'</a></p>
<div class="d">
<p>'well this final'</p>
</div>
</div>
</div>
<div class="a">
<div class="b">
<a href="www.yelloaes1.com">'hi1'</a>
</div>
<div class ="c">
<p><a href="www.bb1.com">'hi again1'</a></p>
<div class="d">
<p>'well this final1'</p>
</div>
</div>
</div>
jetzt i <div class="a">
gehe davon aus unserer Mutter-Tag ist und wir werden Informationen aus diesem Tag saugen, bedeutet nun, dass ich eine Schleife durch diese haben um Informationen von der ganzen Seite zu extrahieren.
aber weil ich Verständnis eine harte Zeit, BeautifulSoup i mit einem Python-Code, um einen Testlauf hat die Informationen von der ersten Iteration dieses <div class= "a">
meinen Code zu extrahieren, ist wie folgt:
soup = BeautifulSoup(r.text)
find_hi = soup.find('div',{'class':'a'}).div.text
find_hi-again =soup.find('div',{'class':'a'}).find_all('div')[1].p.text
find_final =soup.find('div',{'class':'a'}).find('div',{'class':'d'}).text
print(find_hi , find_hi-again , find_final)
#output comes as (it worked !!!)
hi , hi again , this is final
Hinweis: Ich möchte wirklich bei dieser bleiben, also bitte keine komplett neuen Wege der Verschrottung. jetzt ich kann nicht scheinen auf der ganzen Seite Schleife. Ich habe versucht, dies für Looping, zeigt aber nicht das Ergebnis, das ich sehen möchte:
soup = BeautifulSoup(r.text)
#To have a list of all div tags having this class
scrapping = soup.find_all('div',{'class':'a'})
for i in scrapping:
find_hi = i.div.text
find_hi-again =i.find_all('div')[1].p.text
find_final =i.find('div',{'class':'d'}).text
print(find_hi , find_hi-again , find_final)
helfen bitte in Looping?
Was ist das Ergebnis, das angezeigt wird? – sushant
Es zeigt ein Ergebnis, aber es zeigt nicht die verschiedenen Elemente, sondern zeigt wiederholte Elemente aus dem gleichen Tag wie, *** hi, hi wieder, nun, dieses Finale, hi, hi wieder, nun, dieses Finale ** statt * * hi, hi wieder, naja dieses finale, hi1, hi again1, naja das final1 ** –
teile die url wenn möglich und was du als ausgabe erwartest, macht dein aktueller code wenig sinnvoll. –