#coding=utf-8
'''
抓取北上广深的pm2.5值,按照空气质量从优到劣排序
'''
from selenium import webdriver
class PM25():
def __init__(self):
base_url = "http://www.pm25.com/%s.html"
self.urls = []
for city in ['shenzhen','shanghai','guangzhou','shenzhen']:
self.urls.append(base_url %(city))
def __enter__(self):
self.dr = webdriver.Firefox()
return self
def __exit__(self,p1,p2,p3):
self.dr.quit()
def get_pm25(self):
result = []
for url in self.urls:
result.append(self.get_pm25_for_city(url))
return sorted(result,key=lambda d:d['pm25'],reverse=True)
def get_pm25_for_city(self,city_url):
self.dr.get(city_url)
return{
'city':self.dr.find_element_by_class_name('bi_loaction_city').text,
'pm25':int(self.dr.find_element_by_class_name('bi_aqiarea_num').text)
}
if __name__ == '__main__':
with PM25() as pm:
print pm.get_pm25()
'''
抓取北上广深的pm2.5值,按照空气质量从优到劣排序
'''
from selenium import webdriver
class PM25():
def __init__(self):
base_url = "http://www.pm25.com/%s.html"
self.urls = []
for city in ['shenzhen','shanghai','guangzhou','shenzhen']:
self.urls.append(base_url %(city))
def __enter__(self):
self.dr = webdriver.Firefox()
return self
def __exit__(self,p1,p2,p3):
self.dr.quit()
def get_pm25(self):
result = []
for url in self.urls:
result.append(self.get_pm25_for_city(url))
return sorted(result,key=lambda d:d['pm25'],reverse=True)
def get_pm25_for_city(self,city_url):
self.dr.get(city_url)
return{
'city':self.dr.find_element_by_class_name('bi_loaction_city').text,
'pm25':int(self.dr.find_element_by_class_name('bi_aqiarea_num').text)
}
if __name__ == '__main__':
with PM25() as pm:
print pm.get_pm25()
本文介绍了一个使用Selenium自动化浏览器操作的Python程序,该程序能够抓取并展示北京、上海、广州和深圳四个城市的PM2.5指数,并按空气质量从优到劣进行排序。
2541

被折叠的 条评论
为什么被折叠?



