2016-10-24 7 views
-2
<div align="justify" style="text-align: center"> 
    <div> 
     <table cellspacing="0" rules="all" border="1" id="ContentPlaceHolder1_grd_reminder" style="width:555px;border-collapse:collapse;"> 
      <tr> 
       <th class="grdheading2" scope="col">Book</th> 
       <th class="grdheading2" scope="col">Issue Date</th> 
       <th class="grdheading2" scope="col">Submition Date</th> 
      </tr> 
      <tr> 
       <td> 
        <span id="ContentPlaceHolder1_grd_reminder_Label1_0">Engineering Mechanics</span> 
       </td> 
       <td> 
        <span id="ContentPlaceHolder1_grd_reminder_Label2_0">17-Oct-2016</span> 
       </td> 
       <td> 
        <span id="ContentPlaceHolder1_grd_reminder_Label3_0">31-Oct-2016</span> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <span id="ContentPlaceHolder1_grd_reminder_Label1_1">ATB of Engineering Mathematics</span> 
       </td> 
       <td> 
        <span id="ContentPlaceHolder1_grd_reminder_Label2_1">17-Oct-2016</span> 
       </td> 
       <td> 
        <span id="ContentPlaceHolder1_grd_reminder_Label3_1">31-Oct-2016</span> 
       </td> 
      </tr> 
     </table> 
    </div> 
</div> 

私はテキストEngineering mechanicsを抽出したい、それが対応する日付(テキスト)31-Oct-2016とテキストATB of Engineering Mathematicsだとそれが対応する日付(テキスト)31-Oct-2016です。これらはすべてスパンIDにあります。どのように抽出して印刷できますか?私は、Web廃棄に関する初心者です。次のhtmlのbeautifulsoupでspan idのテキストをスクラップする方法は?

+0

を制御することができますtr。こうすることで、スクラップしたデータを制御できます。 – furas

+0

@furas Sir、コードスニペットを教えてください。 – dlphehe

答えて

1

は、まず、すべてのtrのタグを検索しfind_all()を使用することができ、ループを使用して、あなたはすべてのtr内のすべてのspanのタグを検索しfind_all()を使用することができます。この方法は、あなたが最初にあなたが `find_all()` `tr`タグができ、あなたはすべての中に` find_all() `` td` `ことができますループを使用してスクレイプデータ

html = '''<div align="justify" style="text-align: center"> 
              <div> 
<table cellspacing="0" rules="all" border="1" id="ContentPlaceHolder1_grd_reminder" style="width:555px;border-collapse:collapse;"> 
<tr> 
<th class="grdheading2" scope="col">Book</th><th class="grdheading2" scope="col">Issue Date</th><th class="grdheading2" scope="col">Submition Date</th> 
</tr><tr> 
<td> 
<span id="ContentPlaceHolder1_grd_reminder_Label1_0">Engineering Mechanics</span> 
</td><td> 
<span id="ContentPlaceHolder1_grd_reminder_Label2_0">17-Oct-2016</span> 
</td><td> 
<span id="ContentPlaceHolder1_grd_reminder_Label3_0">31-Oct-2016</span> 
                 </td> 
</tr><tr> 
<td> 
<span id="ContentPlaceHolder1_grd_reminder_Label1_1">ATB of Engineering Mathematics</span> 
</td><td> 
<span id="ContentPlaceHolder1_grd_reminder_Label2_1">17-Oct-2016</span> 
</td><td> 
<span id="ContentPlaceHolder1_grd_reminder_Label3_1">31-Oct-2016</span> 
</td> 
</tr> 
</table> 
</div> 
</div>''' 

from bs4 import BeautifulSoup 

soup = BeautifulSoup(html, 'html.parser') 

trs = soup.find_all('tr') 

for tr in trs: 
    spans = tr.find_all('span') 
    if spans: 
     print 'title:', spans[0].text 
     print 'date:', spans[2].text 

結果

title: Engineering Mechanics 
date: 31-Oct-2016 
title: ATB of Engineering Mathematics 
date: 31-Oct-2016 
+0

ありがとうございます。それは働いた:) – dlphehe

関連する問題