在BeautifulSoup中找到2个属性

时间:2012-11-10 02:23:44

标签: python beautifulsoup

以下是HTML的一部分:

<td class="team-name">
<div class="goat_australia"></div>
<a href="http://www.waaaaa.com.au/g-smith/australia/melbourne">Melbourne</a><br />
                            Today
                        </td>
<td class="team-name">
<div class="goat_australia"></div>
<a href="http://www.waaaaa.com.au/g-smith/australia/sydney">Sydney</a><br />
                            Tomorrow
                        </td>

所以我想返回所有这些带有类名“team-name”的td标签,并且只有当它包含文本“Today”时才会返回。

到目前为止我的代码:

from BeautifulSoup import BeautifulSoup
import urllib2, re

starting_url = urllib2.urlopen('http://www.mysite.com.au/').read()
soup = BeautifulSoup(''.join(starting_url))                                                                                  

soup2 = soup.findAll("td", {'class':'team-name'})

for entry in soup2:
    if "Today" in soup2:
        print entry

如果我跑了,这没有任何回报。

如果我拿出那个最后的if语句并且只是把

print soup2

我收回所有td标签,但有些有“今天”,有些有“明天”等。

那么任何指针?有没有办法在soup.findAll函数中添加2个属性?

我也尝试在findAll上运行findAll,但是没有用。

1 个答案:

答案 0 :(得分:3)

使用您目前获得的代码结构,尝试使用嵌入式findAll查找“Today”:

for entry in soup2:
    if entry.findAll(text=re.compile("Today")):
        print entry