Python小练习-采集天气预报

本文介绍了一个简单的Python爬虫程序,该程序利用urllib和正则表达式从指定网站抓取天气信息,并解决了抓取过程中遇到的乱码问题。
View Code
 1 #!/usr/bin/env python
 2 #coding=utf-8
 3 import urllib
 4 import re
 5 def gethtml(url):
 6     page = urllib.urlopen(url)
 7     html = page.read()
 8     page.close()
 9     return html
10 def getweather(html):
11     reg = '<a title=.*?>(.*?)</a>.*?<span>(.*?)</span>.*?<b>(.*?)</b>'
12     weatherlist = re.compile(reg).findall(html)
13     return weatherlist
14 getml = gethtml('http://sd.weather.com.cn/index.shtml')
15 list_all = getweather(getml)
16 for i in list_all:
17     print i[0],i[1],i[2]
18 #    for item in i:
19 #        print item

代码很简单没什么好说的,主要就是正则匹配和乱码问题。
抓下来的页面是utf-8的 但是由于findall返回的是列表 如果直接输出列表 列表中有字符串的话会有乱码。
试过先转unicode再转gb2312也不可以。i.decode(‘utf-8′).encode(‘gb2312′)
单个输出就没问题了。

运行截图

转载于:https://www.cnblogs.com/timeship/archive/2013/03/18/2965882.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值