2

2つのタグがある場合のように、htmlコードで特定のタグを見つけたいのですが、最初のタグではなく、2番目のタグのコンテンツを取得するにはどうすればよいですか?コード

<table align="center"><th id="contact">STUDENT ID</th><th id="contact">NAME</th><th id="contact">   Phone </th><th id="contact"> NO.</th>
<p align="center" style="display:compact; font-size:18px; font-family:Arial, Helvetica, sans-serif; color:#CC3300">
</p><tr>
<td id="contact1">
2011XXA4438F </td> <td id="contact1"> SAM SRINIVAS KRISHNAGOPAL</td> <td id="contact1"> 9894398690 </td> <td id="contact1"> </td>
</tr>
</table>

私がやりたいことは、「2011XXA4438F」を文字列として抽出することです。これを行うにはどうすればよいですか?

4

3 に答える 3

1

.find は、クエリに一致する最初の要素のみを提供すると確信しています。代わりに .findAll を使用してみてください。

ここでドキュメントを確認してください - http://www.crummy.com/software/BeautifulSoup/bs3/documentation.html

編集:あなたの投稿を誤解してください。完全に理解するだけです。「id='contact1'」の 2 番目の発生を常に検索しますか?

おそらくもっとエレガントなものがありますが、次のようなことができます

v = soup.find_all(id='contact1')
length = 0
for x in v:
    length += 1
    if length = 2: #set number according to which occurrence you want. 
        #here is the second occurrence of id='contact1'. 

上記は完全にテストされておらず、ここに直接書かれています。そして、私はPythonを使い始めたばかりですが、おそらくもっと効率的な方法があるでしょう:-)

于 2013-09-14T10:38:15.753 に答える