を使用してのdivからテキストを抽出するために、どのように私はそのようなDIVをcontaing HTMLページを持っている:だけBeatifulSoup
<div class="item-content">
<p>Bla bla bla <em>Name</em> Ba bla bla.</p>
<p>Bla bla bla.</p>
<p> <a href="https://example.com/link.htm"><img src="/image.gif" height="620" width="620" /></a></p>
<p><style> p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; line-height: 18.0px...} </style></p>
<p>Bla bla bla <em>Name</em> Ba bla bla.</p>
<p>Bla bla bla.</p>
</div>
私の目標は、唯一「かくかくしかじか名の文字列を取得することですかくかくしかじか... 。名前はbla " スタイルは何もない。私は<a>
と<style>
を除外するために管理し、これを使用して
from bs4 import BeautifulSoup
f = open('ogn2.html', 'r')
html_doc = f.read()
f.close()
soup = BeautifulSoup(html_doc, 'html.parser')
a = soup.find(attrs={"class": "item-content"})
b = a.find_all("p")
text = ""
a = 0
for p in b:
a = a + 1
print(a, p.string)
if p.string and not p.style:
text = text + " " + p.string
print(text)
しかし<p>
-lineが<em>
のようなタグが含まれている場合は、残念ながらBeautifulSoupは、テキストを返しません:実行するための
はので、私は、そのコードを使用します。
どうすればいいですか?あるいは、より賢明な方法でそれを達成するにはどうすればよいでしょうか?
EDIT:
私は欠場何がタグを含むparagrapghsです:
<p>Bla bla bla <em>Name</em> Ba bla bla.</p>
だから私の望ましい結果は、その間の任意の追加タグなしで全体のプレーンテキストでなければなりません。
*「残念ながら、BeautifulSoupはドット「*?何のドット? –
HTMLタグは[code formatting](https://stackoverflow.com/editing-help#code)を使用する必要があります。また、期待される出力と実際の出力を説明することもできます –
'p.string'ではなく' p.getText() 'を試してみてください。 –