题目
找一个网页,例如https://www.python.org/events/python-events/,用浏览器查看源码并复制,然后尝试解析一下HTML,输出Python官网发布的会议时间、名称和地点。
代码版本1——时区转换
from html.parser import HTMLParser
from urllib import request
from datetime import datetime
from pytz import utc
from pytz import timezone
class EventSearchParser(HTMLParser):
def __init__(self):
super().__init__()
self.Cons=[]
self.times=[]
self.locs=[]
self.__Conference=' ' #标志位(conference和location)
def handle_starttag(self, tag, attrs): #首元素 <start>
attrs=dict(attrs)
if tag=='h3' and 'class' in attrs:
if attrs['class']=='event-title': #判断为事件,其字段数据为会议名字
self.__Conference='conference'
if tag=='time' and 'datetime' in attrs: #判断为日期
cst_tz = timezone('Asia/Shanghai') #上海时区
utc_tz = timezone('UTC') #UTC
dt=datetime.strptime(attrs['datetime'][:-6],'%Y-%m-%dT%H:%M:%S') #str->datetime
dt_utc=dt.replace(tzinfo=utc_tz) #添加时区0:00
dt_Shanghai=dt_utc.astimezone(cst_tz) #转换为上海时区
self.times.append(dt_Shanghai)
if tag=='span' and 'class' in attrs: