前提・実現したいこと
contentsList の <i><i>profit</i>s</i> の profits のみを取り出したい。
###変数soupに代入されているHTML
HTML
1<li class="text-en text-c"> 2A 3<a href="/word/en/change/#ej-14756"> 4<span class="a_line"> 5<span class="a_moji" title="changeの意味">change</span> 6</span> 7</a> 8<a href="/word/en/of/#ej-58587"> 9<span class="a_line"> 10<span class="a_moji" title="ofの意味"> 11of 12</span> 13</span> 14</a> 15<a href="/word/en/air/#ej-1635"> 16<span class="a_line"> 17<span class="a_moji" title="airの意味"> 18air 19</span> 20</span> 21</a> 22<a href="/word/en/always/#ej-2421"> 23<span class="a_line"> 24<span class="a_moji" title="alwaysの意味"> 25always 26</span> 27</span> 28</a> 29<i><i>profit</i>s</i> 30<a href="/word/en/in/#ej-43166"> 31<span class="a_line"> 32<span class="a_moji" title="inの意味"> 33in 34</span> 35</span> 36</a> 37<a href="/word/en/your/#ej-96280"> 38<span class="a_line"> 39<span class="a_moji" title="yourの意味"> 40your 41</span> 42</span> 43</a> 44<a href="/word/en/case/#ej-13775"> 45<span class="a_line"> 46<span class="a_moji" title="caseの意味"> 47case 48</span> 49</span> 50</a> 51. 52</li> 53 54
該当のソースコード
python
1from bs4 import BeautifulSoup 2 3contentsList = soup.find("li", class_ = "text-en text-c").contents
###上記の contentsList を出力すると
['A ',
<a href="/word/en/change/#ej-14756"><span class="a_line"><span class="a_moji" title="changeの意味">change</span></span></a>,
' ',
<a href="/word/en/of/#ej-58587"><span class="a_line"><span class="a_moji" title="ofの意味">of</span></span></a>,
' ',
<a href="/word/en/air/#ej-1635"><span class="a_line"><span class="a_moji" title="airの意味">air</span></span></a>,
' ',
<a href="/word/en/always/#ej-2421"><span class="a_line"><span class="a_moji" title="alwaysの意味">always</span></span></a>,
' ',
<i><i>profit</i>s</i>,
' ',
<a href="/word/en/in/#ej-43166"><span class="a_line"><span class="a_moji" title="inの意味">in</span></span></a>,
' ',
<a href="/word/en/your/#ej-96280"><span class="a_line"><span class="a_moji" title="your の意味">your</span></span></a>,
' ',
<a href="/word/en/case/#ej-13775"><span class="a_line"><span class="a_moji" title="caseの意味">case</span></span></a>,
'.']
###contentsList の 中身の型を調べると
contentsList[0] : A
type : <class 'bs4.element.NavigableString'>
contentsList[1] : <a href="/word/en/change/#ej-14756"><span class="a_line"><span class="a_moji" title="changeの意味">change</span></span></a>
type : <class 'bs4.element.Tag'>
contentsList[2] :
type : <class 'bs4.element.NavigableString'>
contentsList[3] : <a href="/word/en/of/#ej-58587"><span class="a_line"><span class="a_moji" title="ofの意味">of</span></span></a>
type : <class 'bs4.element.Tag'>
contentsList[4] :
type : <class 'bs4.element.NavigableString'>
contentsList[5] : <a href="/word/en/air/#ej-1635"><span class="a_line"><span class="a_moji" title="airの意味">air</span></span></a>
type : <class 'bs4.element.Tag'>
contentsList[6] :
type : <class 'bs4.element.NavigableString'>
contentsList[7] : <a href="/word/en/always/#ej-2421"><span class="a_line"><span class="a_moji" title="alwaysの意味">always</span></span></a>
type : <class 'bs4.element.Tag'>
contentsList[8] :
type : <class 'bs4.element.NavigableString'>
contentsList[9] : <i><i>profit</i>s</i>
type : <class 'bs4.element.Tag'>
contentsList[10] :
type : <class 'bs4.element.NavigableString'>
contentsList[11] : <a href="/word/en/in/#ej-43166"><span class="a_line"><span class="a_moji" title="inの意味">in</span></span></a>
type : <class 'bs4.element.Tag'>
contentsList[12] :
type : <class 'bs4.element.NavigableString'>
contentsList[13] : <a href="/word/en/your/#ej-96280"><span class="a_line"><span class="a_moji" title="yourの意味">your</span></span></a>
type : <class 'bs4.element.Tag'>
contentsList[14] :
type : <class 'bs4.element.NavigableString'>
contentsList[15] : <a href="/word/en/case/#ej-13775"><span class="a_line"><span class="a_moji" title="caseの意味">case</span></span></a>
type : <class 'bs4.element.Tag'>
contentsList[16] : .
type : <class 'bs4.element.NavigableString'>
試したこと
python
1for index in range(len(contentsList)): 2 print(contentsList[index].string)
上記のコードで取得しようとしたが、contentsList[9]のみタグ内にタグがあり、文字列を抜き出せない。
出力結果としては、contentsList[9]は、"None" が 返却される。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/27 14:32
2018/02/27 14:40
2018/02/27 14:47
2018/02/27 14:50 編集
2018/02/27 15:01
2018/02/27 16:03
2018/02/27 16:49