Skip to main content
 Web开发网 » 编程语言 » Python语言

用python写的抓取天气预报的脚本,还比较有趣可以多看看(转载)

2021年11月28日6830百度未收录

  从昨天开始的看关于网络抓取的东西,而且自己的用的是awesome ,所以写了这个天气预报的脚本给我的awesome,这个天气脚本直接取下来的话是七天的天气预报从中国天气网上,我后面对它做了处理,用到了我的awesome上

  效果:1日星期一夜间 阴 低温 4℃ 无持续风向 微风 | 2日星期二 小雨 --> 雨夹雪 3℃ --> 6℃ | 3日星期三 雨夹雪 1℃ --> 5℃

  我只取了三天的预报,三天已经够了,下面程序的注释 英文实在有点过不了关

  python教程第一步#!/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=""

  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 weatherrint i,

  本文源自:

评论列表暂无评论
发表评论
微信