我正在尝试查找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。
答案 0 :(得分: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 Hours 8:00 AM - 12:00 AMExtra Magic Hours 7:00 AM - 8:00 AMExtra 魔术时间12:00至凌晨3:00
2Park Hours上午8:00 - 凌晨1:00魔术时间早上7:00 - 上午8:00
3Park Hours上午8:00 - 凌晨1:00魔术时间早上7:00 - 上午8:00
4Park Hours上午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 魔术时间12:00至凌晨3:00
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 魔术时间12:00至凌晨3:00
...