#!/usr/bin/env python
# coding: utf-8

# 모듈 import
# xml을 객체화하기 위한 모듈
from lxml import etree
import xml.etree.ElementTree as ElementTree

from urllib.request import urlopen
from urllib.parse import urlencode,unquote,quote_plus
import urllib

# 데이터프레임 다루는 모듈
import pandas as pd

# 업체별 화학물질 배출량 이동량 정보

request = urllib.request.Request('http://apis.data.go.kr/1520635/OceanMensurationService/getOceanMesurationListrisa?serviceKey={}&GRU_NAM=001&SDATE=20140909&EDATE=20200109&numOfRows=10')
request.get_method = lambda: 'GET'
response_body = urlopen(request).read()

# 빈리스트 생성
a = []
b = []
c = []
d = []
e = []
f = []
g = []
h = []
i = []
j = []
k = []


# 문자열 형태의 xml파싱
tree = etree.fromstring(response_body)


# 태그 내 여러개의 텍스트를 추출하기 위해 for문 이용하여 합치기
for media in tree.getiterator('item'):
    a.append(media.findtext('ITEM_SEQ'))
    b.append(media.findtext('ITEM_NAME'))
    c.append(media.findtext('ENTP_NAME'))
    d.append(media.findtext('ITEM_PERMIT_DATE')) 
    e.append(media.findtext('ETC_OTC_CODE'))
    f.append(media.findtext('CLASS_NO'))
    g.append(media.findtext('CHART'))   
    h.append(media.findtext('soil'))
    i.append(media.findtext('upjongName'))
    j.append(media.findtext('water'))
    k.append(media.findtext('ISum'))   



len(i)

# 데이터프레임으로 변환
df1 = pd.DataFrame(a,columns=['대기배출량'])
df2 = pd.DataFrame(b,columns=['배출량'])
df3 = pd.DataFrame(c,columns=['업체아이디'])
df4 = pd.DataFrame(d,columns=['업체명'])
df5 = pd.DataFrame(e,columns=['자가매립량'])
df6 = pd.DataFrame(f,columns=['폐기물이동량'])
df7 = pd.DataFrame(g,columns=['폐수이동량'])
df8 = pd.DataFrame(h,columns=['토양배출량'])
df9 = pd.DataFrame(i,columns=['업종명'])
df10 = pd.DataFrame(j,columns=['수계배출량'])
df11 = pd.DataFrame(k,columns=['이동량'])


# 데이터프레임 합치기 
df = pd.concat([df3,df4,df1,df2,df5,df6,df7,df8,df9,df10,df11],axis=1)

# 중복된 항목 제거
df.drop_duplicates().shape

# 엑세로 내보내기 
df.to_excel(r'C:\Users\Bigdata_Team_1\Desktop\SA\화학\업체별 화학물질 배출량.xlsx')


## 물질별 화학물질 배출량 이동량 정보

# 빈리스트 생성
a = []
b = []
c = []
d = []
e = []
f = []
g = []
h = []
i = []
j = []
k = []
l = []


# accessKey에 다운받은 서비스키 등록
request = urllib.request.Request('http://icis.me.go.kr/openapi/service/prtr/getPrtrMttrList?pageNo='+
                                     str(1)+'&numOfRows=13712&accessKey={}=&searchYear=2016')
request.get_method = lambda: 'GET'
response_body = urlopen(request).read()
    
# 문자열 파싱
tree = etree.fromstring(response_body)
    
for media in tree.getiterator('item'):
    a.append(media.findtext('air'))
    b.append(media.findtext('BSum'))
    c.append(media.findtext('casNo'))
    d.append(media.findtext('companyId')) 
    e.append(media.findtext('companyName'))
    f.append(media.findtext('ISum'))    
    g.append(media.findtext('jaga'))    
    h.append(media.findtext('mttrName'))    
    i.append(media.findtext('pyegi'))    
    j.append(media.findtext('pyesoo'))    
    k.append(media.findtext('soil'))    
    l.append(media.findtext('water')) 



# 데이터프레임 형식으로 만들기
df1 = pd.DataFrame(a,columns=['대기배출량'])
df2 = pd.DataFrame(b,columns=['배출량'])
df3 = pd.DataFrame(c,columns=['caseNo'])
df4 = pd.DataFrame(d,columns=['업체아이디'])
df5 = pd.DataFrame(e,columns=['업체명'])
df6 = pd.DataFrame(f,columns=['이동량'])
df7 = pd.DataFrame(g,columns=['자가매립량'])
df8 = pd.DataFrame(h,columns=['물질명'])
df9 = pd.DataFrame(i,columns=['폐기물이동량'])
df10 = pd.DataFrame(j,columns=['폐수이동량'])
df11 = pd.DataFrame(k,columns=['토양배출량'])
df12 = pd.DataFrame(l,columns=['수계배출량'])

df = pd.concat([df4,df5,df1,df2,df3,df6,df7,df8,df9,df10,df11,df12],axis=1)


# 엑셀로 내보내기
df.to_excel('C:/Users/Bigdata_Team_1/Desktop/화학물질배출량이동량/물질.xlsx')
