¼¼°èÀÇ Àα¸´Â ¸î¸íÀϱî¿ä?

(°íÄ£ ³¯ : 2004-08-05)


* ASP °­Á·ΠÀ¯¸íÇÑ taeyo.net¿¡ Àç¹ÌÀÖ´Â °­Á°¡ À־ ÆÄÀ̽㠹öÀüÀ¸·Î ¿Å°Üº¾´Ï´Ù.

¼¼°èÀÇ Àα¸´Â ¸î¸íÀϱî¿ä?
¹Ì±¹ÀÇ Àα¸ Á¶»ç »çÀÌÆ®¿¡ °¡º¸¸é ÇöÀçÀÇ ¼¼°è Àα¸¸¦ ¾Ë ¼ö ÀÖ´ä´Ï´Ù.
http://www.census.gov/cgi-bin/ipc/popclockw
À̰÷¿¡¼­ °è¼Ó ¾÷µ¥ÀÌÆ®µÇ´Â Á¤º¸¸¦ ´Ù¸¥ ȨÆäÀÌÁö¿¡µµ ¶È°°ÀÌ º¸¿©ÁÖ·Á¸é ¾î¶»°ÔÇØ¾ßÇÒ±î¿ä?

´ÙÀ½Àº ¼¼°è Àα¸¸¦ ¾Ë·ÁÁÖ´Â À¥ÆäÀÌÁö¸¦ Àо »ç¶÷ ¼ö°¡ ¸î¸íÀÎÁö Ãâ·ÂÇØÁÖ´Â ÆÄÀ̽㠽ºÅ©¸³Æ®ÀÔ´Ï´Ù.
PC¿¡¼­ ±×³É ½ÇÇà½ÃÄѵµ µÇ°í, ¾ÆÆÄÄ¡ À¥¼­¹ö µîÀÌ ¼³Ä¡µÇ¾î ÀÖ´Ù¸é µ¿ÀûÀ¸·Î À¥ÆäÀÌÁö¸¦ »ý¼ºÇÏ´Â 
CGI ÇÁ·Î±×·¥À¸·Î¼­ ÀÛµ¿ÇÏ°Ô µË´Ï´Ù.

#!/home/bin/python

import urllib, re

print "Content-Type: text/html; charset=EUC-KR \n"

url = 'http://www.census.gov/cgi-bin/ipc/popclockw'
text = urllib.urlopen(url).read()
pattern = '<h1>([0-9,]+)</h1>'
match = re.search(pattern, text)
population = match.group(1)
print 'ÇöÀç ¼¼°èÀÇ Àα¸´Â %s¸íÀÔ´Ï´Ù' % population
½ÇÇà½ÃÄѺ¸¼¼¿ä! ùÁÙ¿¡ #!/home/bin/python À̶ó°í ¾´ °ÍÀº ÀÌ ÆÄÀÏÀ» ÇØ¼®ÇØÁÖ´Â ÀÎÅÍÇÁ¸®Å͸¦ ÁöÁ¤ÇØÁØ °ÍÀÔ´Ï´Ù. ¾î¶² ¾ð¾î·Î Â¥¿©Áø ÇÁ·Î±×·¥ÀÎÁö¸¦ ¿î¿µÃ¼Á¦¿¡°Ô ¾Ë·ÁÁØ´Ù°íµµ ÇÒ ¼ö ÀÖ±¸¿ä. º¸Åë À¯´Ð½º¿¡¼­ ÆÄÀ̽㠽ºÅ©¸³Æ®ÀÇ Ã¹ ºÎºÐ¿¡ ÀÌ·¸°Ô ÁöÁ¤ÇØÁØ ´ÙÀ½¿¡ chmod +x ÆÄÀÏ¸í °ú °°ÀÌ ÇØ¼­ ½ÇÇà ¸ðµå·Î ÁöÁ¤ÇØÁÝ´Ï´Ù. À¯´Ð½º »Ó ¾Æ´Ï¶ó À©µµ¿ì¿¡¼­µµ #!c:\python22\python.exe °ú °°ÀÌ ÁöÁ¤ÇØÁÖ¸é ¾ÆÆÄÄ¡ À¥ ¼­¹ö µî¿¡¼­ ÆÄÀÌ½ã ÆÄÀÏÀ̶ó°í ÀνÄÀ» ÇÏ°Ô µÇ±¸¿ä. print "Content-Type: text/plain; charset=EUC-KR \n" À§ÀÇ ¹®ÀåÀº À¥ÆäÀÌÁö¸¦ »ý¼ºÇÏ¿© º¸¿©ÁÙ ¶§ ¹®¼­ÀÇ Çü½ÄÀ» ¾Ë·ÁÁÖ´Â ¸Ó¸®¸»(Çì´õ)ÀÔ´Ï´Ù. urllib.urlopen(url) urllib ¸ðµâÀÇ urlopen() ÇÔ¼ö´Â ÀÎÀÚ·Î ÁÖ¾îÁø ÁÖ¼ÒÀÇ À¥ÆäÀÌÁö¸¦ µ¹·ÁÁִµ¥, À̶§ ¸®ÅϵǴ °´Ã¼´Â ¸¶Ä¡ ÆÄÀÏó·³ »ç¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ±×·¡¼­ read() ÇÔ¼ö¸¦ ½á¼­ ±× ³»¿ëÀ» ¾ò¾î³ÂÁö¿ä. text = urllib.urlopen(url).read() pattern = '<h1>([0-9,]+)</h1>' match = re.search(pattern, text) population = match.group(1) Á¤±ÔÇ¥Çö½Ä(re) ¸ðµâÀ» ÀÌ¿ëÇÏ¿© ¼¼°è Àα¸ À¥ÆäÀÌÁö¿¡¼­ <h1>°ú </h1> »çÀÌ¿¡ ÀÖ´Â ÃÑÀα¸¼ö¸¸ °Ë»öÇÏ´Â ºÎºÐÀÔ´Ï´Ù. re¿¡ ´ëÇØ¼­ ¼³¸íµå¸®ÀÚ¸é ±æ¾îÁö´Ï±î ¾Æ·¡ÀÇ Âü°í ÀڷḦ Âü°íÇØÁÖ¼¼¿ä. ^^; ÀÌ·¸°ÔÇØ¼­ À¥ÆäÀÌÁö¿¡¼­ ¼¼°è Àα¸¸¦ ¾ò¾î¿À´Â ÇÁ·Î±×·¥À» ¸¸µé¾îº¸¾Ò½À´Ï´Ù. ±×·±µ¥ ÀÌ ÇÁ·Î±×·¥¿¡´Â ÇÑ °¡Áö ¹®Á¦Á¡ÀÌ Àֳ׿ä. Àα¸ Á¶»ç »çÀÌÆ®¿¡¼­ À¥ÆäÀÌÁö¸¦ Çѹø ¾ò¾î¿À°Ô µÇ¸é ±× ³»¿ëÀ» ±â¾ïÇϰí ÀÖ´Ù°¡(´Ù¸¥ ¸»·Î ij½¬ÇÑ´Ù°íµµ ÇÏÁÒ), ´ÙÀ½¹ø¿¡´Â ±â¾ïÇϰí ÀÖ´Â ÆäÀÌÁöÀÇ ³»¿ëÀ» ±×´ë·Î »ç¿ëÇÕ´Ï´Ù. ±×·¸±â ¶§¹®¿¡ °è¼Ó ´Ã¾î³ª´Â Àα¸¸¦ º¸¿©ÁÖÁö ¸øÇϰí, °è¼Ó ¶È°°Àº ¼ýÀÚ¸¸ º¸¿©ÁÖ°Ô µÇÁÒ. ¹®Á¦¸¦ ÇØ°áÇÏ·Á¸é urllibº¸´Ù Á» ´õ ±¸Ã¼ÀûÀ¸·Î ÀÏÀ» ½Ãų ¼ö ÀÖ´Â httplib ¸ðµâÀ» ½á¼­, ¼¼°è Àα¸ ÆäÀÌÁö¸¦ ij½¬ÇÏÁö ¸»°í »õ·Î ¾ò¾î¿À¶ó°í ¾Ë·ÁÁà¾ß°Ú³×¿ä.
#!/home/bin/python

import httplib, re

host = 'www.census.gov'
h = httplib.HTTP(host)
h.putrequest('GET', '/cgi-bin/ipc/popclockw')
h.putheader('Host', host)
h.putheader('Accept', 'text/html')
h.putheader('Cache-Control', 'no-cache')
h.endheaders()
errcode, errmsg, headers = h.getreply()
f = h.getfile()
text = f.read()
f.close()

pattern = '<h1>([0-9,]+)</h1>'
match = re.search(pattern, text)
population = match.group(1)

print "Content-Type: text/html; charset=EUC-KR \n"
print 'ÇöÀç ¼¼°èÀÇ Àα¸´Â %s¸íÀÔ´Ï´Ù.' % population
¿©·¯¹ø »õ·Î°íħ ÇØº¸¼¼¿ä! ¼¼°è Àα¸¾ß ½Ã½Ã°¢°¢À¸·Î ´Ã¾î³ª°í ÀÖ±ä ÇÏÁö¸¸, 4¿ùÀÌ µÇ¸é ¼ÒÁßÇÑ »ç¶÷ÀÌ ÇÑ ¸í ´õ ž¼­ ¼¼°è Àα¸¸¦ ´Ã·ÁÁÙ °Ì´Ï´Ù. ¾ö¸¶ ¹è¸¦ º¼·ÏÇÏ°Ô ¸¸µé°í ÀÖ´Â ÀúÈñ ¾ÆÀ̰¡ ¹ÛÀ¸·Î ³ª¿À°Åµç¿ä~(³ª¿Ô½À´Ï´Ù ^O^) Âü°í: ÆÄÀ̽ãÀ¸·Î ÇÏ´Â À¥ Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¡¹Ö http://network.hanbitbook.co.kr/view.php?bi_id=567 re ¸ðµâ ¼Ò°³ http://people.linuxkorea.co.kr/~yong/python/docs/regex/