python 파충 류 는 전국 pm 2.5 의 공기 질량 (2015.12.21 판) 을 잡는다.

이 인 코딩 형식 은 정말 짜증 이 납 니 다. 인 코딩 형식 을 깊이 배 워 야 할 것 같 습 니 다. 그렇지 않 으 면 이 여러 가지 형식 이 잘못 되 었 습 니 다.
이 인 코딩 은 편집기 와 도 관련 이 있 습 니 다. 처음에 sublime Text 에서 편집 한 코드 로 카드 가 잘 작 동 되 었 으 나 갑자기 raw 가 지원 되 지 않 는 다 는 것 을 알 게 되 었 습 니 다.input 와 input, 그래서 python 이 공식 적 으로 제공 하 는 idle 로 임시 바 꾸 었 습 니 다.이후 각종 기발 한 인 코딩 오류 가 발생 했 습 니 다...
프로그램 은 아마 당신 이 한 도시 의 병 음 을 입력 하면 이 도시 의 공기 오염 상황 으로 돌아 갈 것 입 니 다. 어떤 도시 들 은 없 을 수도 있 습 니 다. 이것 은 완전히 사이트 에 있 는 도시 들 에 달 려 있 습 니 다. 당신 이 물 러 나 고 싶 을 때 quit 를 입력 하면 물 러 납 니 다.
안에 또 하나의 다 중 스 레 드 의 쓰기 방법 이 있 는데 단일 스 레 드 와 다 중 스 레 드 간 의 속 도 를 체험 할 수 있 습 니 다.
<span style="font-size:14px;"># -*- coding: utf-8 -*-

 
import urllib2
import threading
from time import ctime
import BeautifulSoup    #besutifulsoup    
import re
 
def getPM25(cityname):
    site = 'http://www.pm25.com/city/' + cityname + '.html'
    html = urllib2.urlopen(site)
    soup = BeautifulSoup.BeautifulSoup(html)
 
    city = soup.find("span",{"class":"city_name"})  #     
    aqi = soup.find("a",{"class":"cbol_aqi_num"})   # AQI  
    pm25 = soup.find("span",{"class":"cbol_nongdu_num_1"})   # pm25  
    pm25danwei = soup.find("span",{"class":"cbol_nongdu_num_2"})   # pm25    
    quality = soup.find("span",{"class":re.compile('cbor_gauge_level\d$')})  #       
    result = soup.find("div",{"class":'cbor_tips'})   #       
    replacechar = re.compile("<.*?>")  #   <>      
    space = re.compile(" ")
    print city.string + u'
AQI :' + aqi.string+ u'
PM2.5 :' + pm25.string + pm25danwei.string + u'
:' + quality.string + space.sub("",replacechar.sub('',str(result))).decode('utf-8') print '*'*20 + ctime() + '*'*20 def one_thread(cityname1): # print 'One_thread Start: ' + ctime() + '
' getPM25(cityname1) def two_thread(): # print 'Two_thread Start: ' + ctime() + '
' threads = [] t1 = threading.Thread(target=getPM25,args=('beijing',)) threads.append(t1) t2 = threading.Thread(target=getPM25,args=('shenyang',)) threads.append(t2) for t in threads: # t.setDaemon(True) t.start() if __name__ == '__main__': print "*"*20+"welcome to "+"*"*20 while True: cityname1 = raw_input(" :( :beijing)") if cityname1 == 'quit': break one_thread(cityname1) #print '
' * 2 #two_thread(cityname) </span>

좋은 웹페이지 즐겨찾기