免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7718 | 回复: 0
打印 上一主题 下一主题

用python写的抓取天气预报的脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-01 22:00 |只看该作者 |倒序浏览
  从昨天开始的看关于网络抓取的东西,而且自己的用的是awesome ,所以写了这个天气预报的脚本给我的awesome,这个天气脚本直接取下来的话是七天的天气预报从中国天气网上,我后面对它做了处理,用到了我的awesome上
效果:1日星期一夜间 阴 低温 4℃ 无持续风向 微风 | 2日星期二 小雨 --> 雨夹雪 3℃ --> 6℃ | 3日星期三 雨夹雪 1℃ --> 5℃
我只取了三天的预报,三天已经够了,下面程序的注释 英文实在有点过不了关
================================================
#!/usr/bin/env python
# weather html parser
from HTMLParser import HTMLParser
import sys,urllib2,string,re
# define a class to parser a html
class HtmlParser(HTMLParser):
    def __init__(self):
        self.data=''
        self.readingdata=0
        HTMLParser.__init__(self)
    def handle_starttag(self,tag,attrs):
        if tag == 'td':
            self.readingdata=1
    def handle_data(self,chars):
        if self.readingdata:
            self.data+=chars
    def handle_endtag(self,tag):
        if tag=='td':
            self.readingdata=0
    def cleanse(self):
        self.data = re.sub('\s+',' ', self.data)
    def getdata(self):
        self.cleanse()
        return self.data
# this url is a place where you want to know the weather forecast
url="http://www.weather.com.cn/html/weather/101210501.shtml"
req=urllib2.Request(url)
fd=urllib2.urlopen(req)
tp=HtmlParser()
tp.feed(fd.read())
weather=tp.getdata()
# when you are getting a weather after parsering
# this weather string have 7 days weather forecast
# the following if for my awesome format
weather=weather.split()
tag=[weather.index(i) for i in weather if '\xe6\x97\xa5' in i]
first=weather[:tag[1]]
second=weather[tag[1]:tag[2]]
if second[1]!=second[7]:second[1]+=' --> '+second[7]
second[2]=second[9]+' --> '+second[3]
second[0]=second[0][:-6]
second=second[:3]
third=weather[tag[2]:tag[3]]
if third[1]!=third[7]:third[1]+=' --> '+third[7]
third[2]=third[9]+' --> '+third[3]
third[0]=third[0][:-6]
third=third[:3]
weather=['    Weather:']+first+['|']+second+['|']+third
for i in weather:print i,
   
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/82009/showart_2166843.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP