「p」タグを解析することで、目的の出力を得ることができます。
from bs4 import BeautifulSoup
doc = """
<div>
<p class="tabbed" style="margin-top:2px;"><span class="tab"><strong>LANGUAGES</strong></span>Cantonese</p>
<p class="tabbed" style="margin-top:2px;"><span class="tab"></span>English</p>
<p class="tabbed" style="margin-top:2px;"><span class="tab"></span>Putonghua</p>
<p class="tabbed"><span class="tab"><strong>GENDER</strong></span>Male</p>
</div>
"""
soup = BeautifulSoup(doc, "lxml")
ptags = soup.find_all("p", attrs={'class':'tabbed'})
for ptag in ptags:
print ptag.contents[1].string.strip()
あなただけの第四PTAGの値をしたい場合は、これに「forループ」上記を置き換えることができます今すぐ
Cantonese
English
Putonghua
Male
を次のようにこれはあなたにすべての「P」タグの出力が得られます1行これは、ResultSetを返す
ptags = soup.find_all("p", attrs={'class':'tabbed'})
:
Male
説明:folowing
print ptags[3].contents[1].string.strip()
は、出力を与えるだろうか、あなたは常に第四PTAGの値をよろしいですと仮定 - 基本的にpタグのリスト。あなたのケースの各ptagには、spanタグとstringという2つの要素があります。
for ptag in ptags:
print ptag.contents
が得られます:
[<span class="tab"><strong>LANGUAGES</strong></span>, u'Cantonese']
[<span class="tab"></span>, u'English']
[<span class="tab"></span>, u'Putonghua']
[<span class="tab"><strong>GENDER</strong></span>, u'Male']
すべてのPTAGのための今
print ptags
[<p class="tabbed" style="margin-top:2px;"><span class="tab"><strong>LANGUAGES</strong></span>Cantonese</p>,
<p class="tabbed" style="margin-top:2px;"><span class="tab"></span>English</p>,
<p class="tabbed" style="margin-top:2px;"><span class="tab"></span>Putonghua</p>,
<p class="tabbed"><span class="tab"><strong>GENDER</strong></span>Male</p>]
あなたの印刷は、その内容 "ptag.contentsは" それは は、例えば、タグ内の要素のリストを返す場合
今度はリストの2番目の要素が必要なので、2番目の要素を取得してください
for ptag in ptags:
print ptag.contents[1].string.strip()
出力:
Cantonese
English
Putonghua
Male
だけptagsの第四1
print ptags[3].contents[1].string.strip()
が出力印刷するには:
Male
うわー、おかげでたくさん!ここで "ラムダタグ"と "テキスト[6:]"の機能/意味は何ですか? – peterchen
@joycey https://docs.python.org/3/tutorial/controlflow.html#lambda-expressions –