2012-04-11 50 views
1

我试图找到HTML的这些部分,但只有某些月份(04)的那些部分,因为链接的结尾有所区别。在Python中有多个属性的美丽的汤查询

<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如果有人需要它。

回答

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 

这会给你:

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

2Park Hours8:00 AM - 1:00 AMExtra魔术Hours7:00 AM - 8:00 AM

3Park Hours8:00 AM - 1:00 AMExtra魔术Hours7:00 AM - 8:00 AM

4Park Hours8:00 AM - 1:00 AMExtra魔术Hours7:00 AM - 8:00 AM

5Park营业时间8:00 AM - 1:00 AMExtra Magic营业时间7:00 AM - 8:00 AM

6公园营业时间8:00 AM - 12:00 AMExtra魔法营业时间7:00 AM - 8:00 AMExtra 魔法营业时间12:00 AM - 上午3:00

7Park Hours8:00 AM - 1:00 AMExtra魔术Hours7:00 AM - 8:00 AM

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

....

+0

不知道如何拔出每个这些项目单独地说,将它们存储在字典中? – westbyb 2012-04-11 02:45:47

+0

@westbyb使用RegEx是我头上的方法。 – DiamRem 2012-04-12 17:27:44

+0

这就是我最终做的,它的工作。谢谢! – westbyb 2012-04-12 21:23:51