python 爬取天气温度

#!/usr/bin/env python
# encoding: utf-8
import re
import requests
#定义访问地址列表,因为地址没有通配匹配所以没办法写正则
url = [
'http://chengdu.tianqi.com/',
'http://chengdu.tianqi.com/chongzhou/',
'http://chengdu.tianqi.com/dayi/',
'http://chengdu.tianqi.com/dujiangyan/',
'http://chengdu.tianqi.com/jintang/',
'http://chengdu.tianqi.com/longquanyi/',
'http://chengdu.tianqi.com/pixian/',
'http://chengdu.tianqi.com/pujiang1/',
'http://chengdu.tianqi.com/pengzhou/',
'http://chengdu.tianqi.com/qionglai/',
'http://chengdu.tianqi.com/shuangliu/',
'http://chengdu.tianqi.com/wenjiang/',
'http://chengdu.tianqi.com/xindu/',
'http://chengdu.tianqi.com/xinjin/',
]
#循环访问地址
for html in url:
    html=requests.get(html)
    detail = html.content.decode('gbk').encode('utf-8')
    detail1 = re.findall('<div id="rettemp">(.*?)</div>',detail,re.S)
    temper = re.findall('<strong>(.*?)</strong>',str(detail1),re.S)
    content = temper[0].replace('&deg;','°')
    cityall = re.findall('<div class="temp">(.*?)<div class="weatherDiv1">',detail,re.S)
    city = []
    for i in cityall:
       city = re.findall('<h3>(.*?)</h3>',i,re.S)
    for i in city:
       print i + ':' + content
       a = i + ':' + content + '\n'
       with open('temperature.txt','a+') as obj:
           obj.write(a)
with open('temperature.txt','a+') as obj:
    obj.write('==================' + '\n')
    
    
    
说明:
<div class="temp">
	            <h3>成都当前温度</h3>
	            <div class="weatherDiv1">
	              <div class="numN"> 50-<br>
	                25-<br>
	                0-<br>
	                -25-<br>
	                -50- </div>
	              <p class="bg_sk" style="height:37px" id="rethigh"></p>
	              <div id="rettemp"><strong>9.6°</strong><span>相对湿度:99%</span></div>
				  <div class="tq24_1"><a href="http://chengdu.tianqi.com/today/" target="_blank">24小时天气预报</a></div>
	            </div>
	          </div>
	          
detail1 = re.findall('<div id="rettemp">(.*?)</div>',detail,re.S)
<div id="rettemp"><strong>9.6°</strong><span>相对湿度:99%</span></div>
				  <div class="tq24_1"><a href="http://chengdu.tianqi.com/today/" target="_blank">24小时天气预报</a></div>
	            </div>
	            
	            
temper = re.findall('<strong>(.*?)</strong>',str(detail1),re.S)	 
<strong>9.6°</strong>
运行结果:
成都当前温度:9.6°
崇州当前温度:9.9°
大邑当前温度:11.8°
都江堰当前温度:8.9°
金堂当前温度:9.9°
龙泉驿当前温度:9.6°
郫县当前温度:9.9°
蒲江当前温度:9.6°
彭州当前温度:9.7°
邛崃当前温度:11.7°
双流当前温度:10.2°
温江当前温度:10.8°
新都当前温度:9.8°
新津当前温度:10.5°
并会把结果存放到temperature.txt中








转载于:https://my.oschina.net/eddylinux/blog/539401

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值