私は最近、bs4を使って非常にきれいな方法でWeb廃棄を発見しました。私たちは、これが私たちのhtmlコードであるとしましょう:私は<div class="a">
と仮定しています美味しいスープを使って "DIV"タグからコンテンツを抽出するループを適用する方法は?
<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>
は、私たちの親タグであり、我々はこのタグの外に情報を吸うだろう、今では私は、このをループしなければならないことを意味しますすべてのページから情報を抽出します。
が、私はBeautifulSoupを理解することに苦労したので、私は私のコードは次のようである。この<div class= "a">
の最初の反復から情報を抽出するために、Pythonコードで
をテストランをした:
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
注:私は本当にこの1つに固執したいので、全く新しい方法で廃棄してはいけません。今私ははすべてのページにループするように見えません。 私はループのためにこれを試してみましたが、私が見たいと思った結果が表示されない:
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)
ループに助けてください?
表示される結果は何ですか? – sushant
結果が表示されていますが、異なる要素が表示されているのではなく、同じタグの繰り返し要素が表示されています。*** hi、hiもう一度、この最終、hi、hi再度、 * hi、hiもう一度、よく最後に、hi1、hi again1、よく最終この1 ** –
可能な限りURLを共有し、出力として期待するものは、あなたの現在のコードは意味がありません。 –