import urllib.request
import threading
from time import ctime
from bs4 import BeautifulSoup
def getPM25(cityname):
site = 'http://www.pm25.com/' + cityname + '.html'
page = urllib.request.urlopen(site)
html = page.read();
soup = BeautifulSoup(html.decode("utf-8"))
city = soup.find(class_ = 'bi_loaction_city') # 城市名称
aqi = soup.find("a",{"class","bi_aqiarea_num"}) # AQI指数
quality = soup.select(".bi_aqiarea_right span") # 空气质量等级
result = soup.find("div",class_ ='bi_aqiarea_bottom') # 空气质量描述
print (city.text + u'AQI指数:' + aqi.text + u'\n空气质量:' + quality[0].text + result.text)
print ('*'*20 + ctime() + '*'*20)
def one_thread(): # 单线程
print ('One_thread Start: ' + ctime() + '\n')
getPM25('shenzhen')
getPM25('shanghai')
def two_thread(): # 多线程
print ('Two_thread Start: ' + ctime() + '\n')
threads = []
t1 = threading.Thread(target=getPM25,args=('shenzhen',))
threads.append(t1)
t2 = threading.Thread(target=getPM25,args=('shanghai',))
threads.append(t2)
for t in threads:
# t.setDaemon(True)
t.start()
if __name__ == '__main__':
one_thread()
print ('\n' * 2)
two_thread()
windows,py:3.4.3。改成如下:就可以正常获取城市了,多谢各位大虾。。。
参考:http://www.oschina.net/code/snippet_2284672_46423