Skip to main content
 首页 » 编程设计

python之Python 中具有多个属性的漂亮 Soup 查询

2025年05月04日18zhengyun_ustc

我正在尝试查找 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> 

我可以使用 findAll('div', attrs={'class':'dayContainer'}) 找到所有日期,但这会为我提供网站内的所有日期。我尝试关注 this例如,但我尝试的一切都给我留下了空白结果。这是我现在要查找的部分:

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

知道我哪里出错了吗?谢谢! 这是 the site如果有人需要的话。

请您参考如下方法:

查看您发布的站点链接后,我发现每个月的日历实际上包含在名为“month_name2012”的 div 中。

所以对于 4 月,您可以:

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

这会给你:

1Park Hours8:00 AM - 12:00 AMExtra Magic Hours7:00 AM - 8:00 AMExtra Magic Hours12:00 AM - 3:00 AM

2Park Hours8:00 AM - 1:00 AMExtra Magic Hours7:00 AM - 8:00 AM

3Park Hours8:00 AM - 1:00 AMExtra Magic Hours7:00 AM - 8:00 AM

4Park Hours8:00 AM - 1:00 AMExtra Magic Hours7:00 AM - 8:00 AM

5Park Hours8:00 AM - 1:00 AMExtra Magic Hours7:00 AM - 8:00 AM

6Park Hours8:00 AM - 12:00 AMExtra Magic Hours7:00 AM - 8:00 AMExtra Magic Hours12:00 AM - 3:00 AM

7Park Hours8:00 AM - 1:00 AMExtra Magic Hours7:00 AM - 8:00 AM

8Park Hours8:00 AM - 12:00 AMExtra Magic Hours7:00 AM - 8:00 AMExtra Magic Hours12:00 AM - 3:00 AM

....