py爬虫基础范例——获取空气指数aqi
发表于 : 周四 6月 01, 2017 23:09
在坛主DT27亲自指导下,完全根据坛主放出的代码更改。
坛主放的代码适用于全地区,改编代码可根据情况选择监测点。
所要更改的
坛主放的代码适用于全地区,改编代码可根据情况选择监测点。
代码: 全选
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import urllib
import urllib2
import re
#Domoticz服务器
domoticzserver = "127.0.0.1:8080"
aqiidx='137'
pm25idx='138'
pm10idx='139'
#目标网页
aqiurl = 'http://www.pm25.com/city/mon/aqi/%E4%B8%8A%E6%B5%B7/%E8%99%B9%E5%8F%A3.html'
pm25url = 'http://www.pm25.com/city/mon/pm2_5/%E4%B8%8A%E6%B5%B7/%E8%99%B9%E5%8F%A3.html'
pm10url = 'http://www.pm25.com/city/mon/pm10/%E4%B8%8A%E6%B5%B7/%E8%99%B9%E5%8F%A3.html'
#此方法向Domoticz服务器发送请求
def domoticzrequest (url):
request = urllib2.Request(url)
response = urllib2.urlopen(request)
return response.read()
#此方法用于提取字符串中的数字
def OnlyNum(s,oth=''):
s2 = s.lower();
fomart = '0123456789'
for c in s2:
if not c in fomart:
s = s.replace(c,'');
return s;
def getairquality(url):
results=urllib2.urlopen(url).read()
data = re.findall(r"data:[[\d+,]+]", results)
data = data[0]
l24 = data.split(',')
airquality=OnlyNum(l24[23],oth='')
return airquality
aqi=getairquality(aqiurl)
pm25=getairquality(pm25url)
pm10=getairquality(pm10url)
#将空气质量指数发送到domoticz
domoticzrequest("http://"+domoticzserver+"/json.htm?type=command¶m=udevice&idx="+aqiidx+"&nvalue=0&svalue="+aqi)
#将pm2.5浓度发送到domoticz
domoticzrequest("http://"+domoticzserver+"/json.htm?type=command¶m=udevice&idx="+pm25idx+"&nvalue=0&svalue="+pm25)
#将pm10浓度发送到domoticz
domoticzrequest("http://"+domoticzserver+"/json.htm?type=command¶m=udevice&idx="+pm10idx+"&nvalue=0&svalue="+pm10)
- domoticz服务器信息
- 3个设备的idx(字符串)
- 3个url(http://www.pm25.com/city/mon/aqi/上海/虹口.html 其中中文要转换uricode 怎么直接中文请大神回答)