2014-01-23 5 views
0

Привет ребята У меня есть вопрос о разборе HTML с BeautifulSoup Мой вопрос заключается в том, чтобы разобрать этот HTML:Python BeautifulSoup HTML разбора

<div class="time_table show_today" id="monday_schedule"> 
      <h3>January 20, 2014</h3> 
         <table> 
       <tbody> 
       <tr> 
        <th>Time</th> 
        <th>Program</th> 
       </tr> 

        <tr> 
         <td class="time_part"> 0:00 </td> 
         <td class="show_content"> 
         <h4> 
          First Up 
         </h4> 
         <p> 
          Bloomberg Television&#39;s award winning morning show takes a look at market openings in Asia and analyzes all the breaking news stories essential for your business day ahead.      </p> 
         </td> 
        </tr> 

        <tr> 
         <td class="time_part"> 2:00 </td> 
         <td class="show_content"> 
         <h4> 
          On the Move with Rishaad Salamat 
         </h4> 
         <p> 
          Rishaad Salamat brings you comprehensive coverage of market openings from Asia and live reporting on the stories most impacting business around the globe.      </p> 
         </td> 
        </tr> 

        <tr> 
         <td class="time_part"> 4:00 </td> 
         <td class="show_content"> 
         <h4> 
          Asia Edge 
         </h4> 
         <p> 
          Get to the bottom of the days major issues influencing business decisions with Rishaad Salamat. Asia Edge gives viewers a deeper perspective through extended interviews with the region&#39;s newsmakers as well as fast-paced panel discussions featuring Bloomberg&#39;s market reporters, business experts and influential guests. Stay ahead of the business day with Asia Edge.      </p> 
         </td> 
        </tr> 

Мой код выглядит как:

url = 'http://www.bloomberg.com/tv/schedule/europe/' 

response = urllib2.urlopen(url) 
soup = BeautifulSoup(response) 

for line in soup.findAll('div',{'td','h4','p'}): 
    print line 

Что я делая неправильный код, некоторые советы были бы замечательными. Проблема заключается в том, что <h3>January 20, 2014</h3 собирается около недели, и он принимает только один, но цикл не может ничего сделать, чтобы печатать его в каждой строке со всеми другими тегами.

+0

Я не могу понять ваше последнее предложение вообще. Для чего вы хотите, чтобы результат был для данного HTML? –

ответ

0

Я не уверен, чего вы пытаетесь достичь с {'td','h4','p'} в качестве второго аргумента. Это set, а не dict (как вы думаете, это так).

Если вы хотите, чтобы получить дату, просто soup.find('h3') должно быть хорошо здесь:

>>> print soup.find('h3') 
<h3>January 20, 2014</h3> 
>>> print soup.find('h3').text 
January 20, 2014 
+0

Да, это хорошо, но если вы займете дату в цикле, он не будет анализировать все теги из html –

Смежные вопросы