东南地区连续突破历史,江浙沪除了包邮之外的另一福利-桑拿也已到手。这样的日子里是应该每日关注天气主义降暑避免出现热疾病,python包含比 较多的网络应用类这样就方便了一些网络应用的操作,之外还有些可以和c++一争高下的界面处理。这次就联合这两个强项做一个中国气象网的爬虫,爬下来数据 保存成txt,之后再通过界面框显示出来。
源码如下:
# -*- coding: cp936 -*-#识别中文编码
import urllib2#载入网络库
import re#查找的函数库
reg=‘<a title=.*?>(.*?)</a>.*?<span>(.*?)</span>.*?<b>(.*?)</b>‘#正则表达式
url = "http://www.weather.com.cn/shanghai/index.shtml"#气象网上海的预报页面
page = urllib2.urlopen(url).read()#打开页面怕数据
weatherList=re.compile(reg).findall(page)#根据正则表达式找到要的数据
a = "C://Users/xww/Desktop/shanghaitianqi.txt"#保存位置-本人的桌面位置
uipath = unicode(a , "utf8")#气象数据的编码格式转换
f = open(a,‘w+‘)
f = open(a,‘r+‘)
for weather in weatherList:
city=str(weather[0]).decode(‘utf-8‘).encode(‘gb2312‘)
high=str(weather[1]).decode(‘utf-8‘).encode(‘gb2312‘)
low=str(weather[2]).decode(‘utf-8‘).encode(‘gb2312‘)
f.write(city)
f.write(" ")
f.write(high)
f.write(" ")
f.write(low)
f.write(" \r\n")
f.close()
#filename = "C://Users/xww/Desktop/shanghaitianqi.txt"
f = open(a,‘r+‘)
import sys
import wx#界面的函数库
class StaticTextFrame(wx.Frame):#建立类
def __init__(self):
wx.Frame.__init__(self, None, -1, ‘天气预报‘,size=(700, 500))#花框的大小
panel = wx.Panel(self, -1)
for i in range(11):
a=f.readline()
wx.StaticText(panel, -1,a ,(100, 30*i))#"This is an example of static text"#框内显示数据
if __name__ == ‘__main__‘:#建立消息
app = wx.PySimpleApp()
frame = StaticTextFrame()
frame.Show()
app.MainLoop()