使用Beautiful Soup解析HTML

0 投票
2 回答
946 浏览
提问于 2025-04-17 09:50

这是我的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>

我想用Beautiful Soup提取一些字符串(从string1string6)。

有没有人能告诉我该怎么做?

** HTML中有很多<div>标签,我并不需要全部。 我想提取的是在<td class="txt"></td>之间的字符串。

2 个回答

0

试试这个

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
1

如果这个内容在字符串 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']

撰写回答