python 搜索html,使用Python中的正则表达式逐行搜索HTML

1

每个日历条目都在一行中,所以我认为最好是逐行浏览HTML,如果该行包含小时,则将这些小时添加到相应日期的字典中(有些日子有多个日期小时条目)。

import urllib

import re

source = urllib.urlopen('http://disneyworld.disney.go.com/parks/magic-kingdom/c\

alendar/')

page = source.read()

prkhrs = {}

def main():

parsehours()

def parsehours():

#look for #:## AM - #:## PM

date = r'201204\d{02}'

hours = r'\d:0{2}\s\w{2}\s-\s\d:0{2}\s\w{2}'

#go through page line by line

for line in page:

times = re.findall(hours, line)

dates = re.search(date, line)

if dates:

start = dates.start()

end = dates.end()

curdate = line[start:end]

#if #:## - #:## is found, a date has been found

if times:

#create dictionary from date, stores hours in variable

#extra magic hours(emh) are stored in same format.

#if entry has 2/3 hour listings, those listings are emh

prkhrs[curdate]['hours'] = times

#just print hours for now. will change later

print prkhrs我遇到的问题是,当我将'打印线'放入通过页面的for循环中时,它会一次打印出一个字符,我假设这是搞乱了什么。

现在,'打印prkhrs'只是打印任何东西,但使用re.findall日期和小时打印出正确的时间,所以我知道正则表达式的作品。关于如何让它运作的任何建议?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值