东南地区连续突破历史,江浙沪除了包邮之外的另一福利-桑拿也已到手。这样的日子里是应该每日关注天气主义降暑避免出现热疾病,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()