2013-11-07 5 views
0

Im пытаясь разобрать следующие HTML:Как получить эти значения с помощью BeautifulSoup?

<div class="content"> 
    <h3> 
           Kontaktuppgifter</h3> 
    <table> 
     <tr> 
      <th> 
       Postadress: 
      </th> 
      <td> 
       Platteb.... 
       <br/>44497 SVE.... 
      </td> 
     </tr> 
     <tr> 
      <th> 
       Telefon: 
      </th> 
      <td> 
       01-....... 

      </td> 
     </tr> 
    </table> 

Я хочу, чтобы захватить td 1, td 2 и td 3 Однако td 3 не всегда присутствует.

Это то, что я получил до сих пор:

def ParsePage(threadName, page_url): 
    r = requests.get(page_url) 
    print "\n--------------------\n" 
    print "Parsing page: " + r.url 
    data = r.text 
    soup = BeautifulSoup(data) 

    divs = soup.findAll('div', { "class" : "content" }) 
    for tag in divs: 
     divds = tag.findAll('td') 
     print divds 

По какой-то причине это просто выводит весь DIV

+0

Вы имеете в виду «возвращает», как при печати всего div, или вам не хватает заявления о возврате? – TankorSmash

+0

Извините, как в отпечатках – Alosyius

+0

Это сработало и для меня! – moenad

ответ

1

Вы должны быть опечатка где-код работал для меня:

from bs4 import BeautifulSoup 

soup = BeautifulSoup(your_html) 
div = soup.findAll("div", {"class": "content"}) 

for tag in div: print tag.findAll("td") 
#printed: 
[<td> 
       Platteb.... 
       <br/>44497 SVE.... 
      </td>, <td> 
       01-....... 

      </td>] 
Смежные вопросы