User:R. Hillgentleman/currencyCIA.py

出自維基百科,自由嘅百科全書
#currencyCIA1.py
#TO GET CURRENCY INFORMATION FROM CIA WORLD FACT BOOK
#https://www.cia.gov/library/publications/the-world-factbook/geos/ch.html
#AT THE MOMENT, EXCHANGE RATE ONLY
# TO MATCH: <div align="right">Exchange rates:</div>  - NOT NEEDED
# THEN MATCH: (yuan) per US dollar - 7.97 (2006)  - WHAT WE DO
import urllib
import re

#LIST OF COUNTRIES
countryList=['ch','cn','uz', 'uk','ja','ca']

###SET REGEX ################################
exword=re.compile(r'(?i)exchange rate')
dollarword=re.compile(r'(?i)(?<=per us dollar - ).+\(2006\)')


#OPEN FACTBOOK PAGE AT READ ALL THE CRAP
def exchangeRate(countrycode):  
  thePage='https://www.cia.gov/library/publications/the-world-factbook/geos/'+countrycode+'.html'
  noPage=False
  try:
    x=urllib.urlopen(thePage)
  except:
    print('No factbook for'+countrycode)
    noPage=True
  finally:
    print('...')
  if noPage: return('No data')  #NO SUCH PAGE! NEXT COUNTRY

  #PAGE OBJECT CREATED, NOW READ
  ciacrap = x.read()

  #NOW SEEK THE EXCHANGE RATE
  l = dollarword.findall(ciacrap)
  for i in l:
    exchangeRateString= i  #THERE SHOULD BE ONLY ONE ANYWAY
    print exchangeRateString
    return exchangeRateString


for country in countryList:
 print(country+':'+ exchangeRate(country) +'\n')




"""
#####OLD CRAP###############
#LOOK FOR "EXCHANGE RATE"
n=0
wherefound=0
for line in x:
 l[n]=line
 junk, count= exword.subn('',line)
 if count >0:
   print line
   wherefound = n
   print('%d'%wherefound)
 n=n+1
print('Found at %d'+%wherefound)
"""