Python中具有多个属性的美丽汤查询

wes*_*byb 1 python beautifulsoup

我试图找到HTML的这些部分,但只是某个月(04)的部分,区别在于链接的结尾.

<td class="">
    <div class="dayContainer">
        <a href="/parks/magic-kingdom/calendardayview/?asmbly_day=20120402"> 
            <p class="day"> 2</p> 
            <p class="moreLink">
                Park Hours
                <br />
                8:00 AM - 1:00 AM
                <br /><br/>
                Extra Magic Hours
                <br />
                7:00 AM - 8:00 AM
                <br /><br/>
            </p> 
        </a> 
    </div>
</td>
Run Code Online (Sandbox Code Playgroud)

我可以通过使用找到所有日期findAll('div', attrs={'class':'dayContainer'}),但这会给我网站中的所有日期.我试着按照这个例子,但我尝试的一切都给我留下了空白的结果.以下是我现在要查找的部分:

days = soup.findAll(lambda date: date.name == 'a' and date.text[-4:-2] == '04' and date.findParent('div', attrs={'class':'dayContainer'}))
print days
Run Code Online (Sandbox Code Playgroud)

知道我哪里出错了吗?谢谢!这是网站,如果有人需要它.

Dia*_*Rem 6

在查看您发布的网站链接后,我发现每个月的日历实际上都包含在名为"month_name2012"的div中.

所以对于四月,你可以这样做:

april_c = soup.find('div', attrs={'id':'april2012'})
parking_apr = april_c.findAll('div', 'dayContainer')
for item in parking_apr:
    print item.text
Run Code Online (Sandbox Code Playgroud)

这会给你:

1Park Hours 8:00 AM - 12:00 AMExtra Magic Hours 7:00 AM - 8:00 AMExtra Magic Hours 12:00 AM - 3:00 AM

2停车场上午8:00 - 凌晨1:00魔术时间早上7:00 - 上午8:00

3Park Hours上午8:00 - 凌晨1:00魔术时间早上7:00 - 上午8:00

4停车场上午8:00 - 凌晨1:00魔术时间早上7:00 - 上午8:00

5Park Hours上午8:00 - 凌晨1:00魔术时间早上7:00 - 上午8:00

6Park Hours 8:00 AM - 12:00 AMExtra Magic Hours 7:00 AM - 8:00 AMExtra Magic Hours 12:00 AM - 3:00 AM

7Park Hours上午8:00 - 凌晨1:00魔术时间早上7:00 - 上午8:00

8Park Hours 8:00 AM - 12:00 AMExtra Magic Hours 7:00 AM - 8:00 AMExtra Magic Hours 12:00 AM - 3:00 AM

....