2016-10-24 1 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입니다. 이들 모두는 모두 span id에 있습니다. 어떻게 추출하고 인쇄 할 수 있습니까? 나는 웹 스크래핑을 처음 사용합니다.다음 HTML에서 beautifulsoup의 스팬 id 텍스트를 스크랩하는 방법은 무엇입니까?

+0

당신이 할 수있는'find_all()''tr' 태그, 그리고 당신이 할 수있는 루프를 사용하여'find_all()''td'을'제어 할 수있는이 방법 tr'. 이렇게하면 스크랩 된 데이터를 제어 할 수 있습니다. – furas

+0

@furas Sir, 코드 스 니펫을 알려주시겠습니까? – dlphehe

답변

1

는 먼저 모든 tr 태그를 찾을 find_all()을 사용할 수 있으며, 루프를 사용하면 모든 tr의 모든 span 태그를 찾을 find_all()를 사용할 수 있습니다. 당신이 긁힌 데이터마다의

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

관련 문제