Разбор HTML с Прекрасным супом - PullRequest
0 голосов
/ 09 января 2012

Вот как выглядит мой HTML:

<table cellspacing="0" cellpadding="0"  class="list04" style="width:704px;">

    <td class="txt"><img src="img/1001.gif" /></td>
    <td>
    <div>string1</div>
    <div>
    string2</div>
    </td>
    <td><div class="name">string3</div>
    </td>
    <td>
    </td>
    <td></td>
    </tr>
    <tr>
    <td></td>


    <td class="txt"><img src="img/1002.gif" /></td>
    <td>
    <div>string4</div>
    <div>
    string5</div>
    </td>
    <td><div class="name">string6</div>
    </td>
    <td>
    </td>
    <td></td>
    </tr>
    <tr>
    <td></td>

</table>

Я хочу извлечь строки (string1 до string6) с Прекрасным супом.

Может кто-нибудь ответить мне, как это сделать?

** В остальном HTML столько всего <div>, и они мне все не нужны. Я хочу извлечь строки между <td class="txt"> и </td>

Ответы [ 2 ]

1 голос
/ 09 января 2012

Если это в строке html, используйте

from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(html)
print [t.text for t in soup.find("table", {"class": "list04"}).findAll("div")]

который распечатает:

[u'string1', u'string2', u'string3', u'string4', u'string5', u'string6']
0 голосов
/ 02 апреля 2013

Попробуйте это

from BeautifulSoup import BeautifulSoup 
f = open('a.htm')
soup = BeautifulSoup(f) 
anothersoup = BeautifulSoup(soup.findAll('td', attrs={'class':'txt'}))
list = anothersoup.findAll('div')
print list
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...