数据可视化指南之数据获取

 
 
#-*- encoding:utf-8 -*-
import urllib2                          #1
from bs4 import BeautifulSoup            #2
f = open('temp-data.txt','w')             #3
for m in range(1,13):                      #4                                                                                                                    
    for d in range(1,32):
        if (m==2 and d>28):                                                                                                                                                                           #5 
            break
        elif(m in [4,6,9,11] and d>30):                                                                                                                                                               #6
            break
        timestamp = '2009' + str(m) + str(d)    #7
        print "Geting Data for:"+timestamp
        url = "http://www.wunderground.com/history/airport/KBUF/2009/" + str(m) + "/" + str(d)+"/DailyHistory.html"     #8
        page = urllib2.urlopen(url)                                        #9
        soup = BeautifulSoup(page)                                         #10
        dayTemp = soup.findAll( attrs = {"class":"wx-value"})[4].string    #11
        
        if len(str(m)) < 2:                                                                                                                                                                                                           #12
            mStamp = '0'+str(m)
        else:
            mStamp = str(m)
        if len(str(d)) < 2:
            dStamp = '0'+ str(d)
        else:
            dStamp = str(d)
        timestamp = '2009' + mStamp + dStamp                                  #13
        f.write(timestamp + ':'+dayTemp + '\n')                               #14
f.close()                                                                     #15


</pre><pre>

#1:读取URL要用到的包
#2:解析网页的HTML信息用到的包,正在看
#3:创建一个文本文件,自动新建
#4:想获得一年内每天的最高温度信息,要用for循环,并嵌套了一个for循环,外面是月,里面是天
#5:判断2月28天,闰年的话29天,不过2009年不是闰年,要是任意年份的话,可以再改下程序,判断下是否闰年,再加个变量
#6判断剩下每月的天数,有的30,有的31,4,6,9,11都是30天,所以到30为止。大于30跳出循环
#7外部显示的进度,便于调试纠错
#8不同月不同天的URL就两个地方不同
#9打开URL
#10解析HTML标签
#11将class属性为wx-value中的第五个值取出来
#12文本内部的时间戳,将如期格式化为时间戳,一位的就前面加0,两位的就不变
#13内部的时间戳
#14写入文本
#15关闭文本,结束

 
 结果: 





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值