Пример #1
0
def main(start_date,end_date,area,crop):
    api_url=au.crop_weather_url(start_date,end_date,area,crop)
    soup=cn.getSoup(api_url+"1")
    dp=DataProcess()
    totalcount=int(soup.find("totalcount").text)
    numofrows=int(soup.find("numofrows").text)
    pageMaxNum=math.ceil(totalcount/numofrows)
    data=[]
    year={}
    for itr in range(pageMaxNum):
        soup=cn.getSoup(api_url+str(itr+1))
    #item 안의 모든 자식을 해당 자식의 name:text 형태로 딕셔러니를 만든다
    #item 한개당 한개의 자식 딕셔너리 리스트를 원소로하는 리스트를 만들고
    #모든 item리스를 모아 data에저장한다.
    #data=[ {ele.name:ele.text.split(" ")[0]} for item in soup.find_all("item") for ele in item ]
        for item in soup.find_all("item"):
            row={}
            for ele in item:
                row.update({ele.name:ele.text.split(" ")[0]})
            if row.get("ym") not in year:
                year.update({row.get("ym"):1})
                data.append(row)
    if len(data)!=0:
        dp.setDataList(data)
    else:
        print("no data to fetch!")
    if area=="천안":
        area="cheonan"
    else:
        area="naju"
    if crop=="배":
        crop="pear"
    file_name=dp.writeToCsv("processed_data/weather_data/"+area+"/AREA-"+area+"CROP-"+crop+"FROM-"+start_date+"END-"+end_date+"CREATED-")
Пример #2
0
def main(start_date, end_date):
    api_url = au.weather_point_url(start_date, end_date)
    dp = DataProcess()
    data = []
    delta = date(int(end_date[:4]), int(end_date[4:6]), int(
        end_date[6:8])) - date(int(start_date[:4]), int(start_date[4:6]),
                               int(start_date[6:8]))
    for itr in range(math.ceil(delta.days / 10)):
        soup = cn.getSoup(api_url + str(itr + 1))
        #item 안의 모든 자식을 해당 자식의 name:text 형태로 딕셔러니를 만든다
        #item 한개당 한개의 자식 딕셔너리 리스트를 원소로하는 리스트를 만들고
        #모든 item리스를 모아 data에저장한다.
        #data=[ {ele.name:ele.text.split(" ")[0]} for item in soup.find_all("item") for ele in item ]
        if isinstance(soup, BeautifulSoup):
            for item in soup.find_all("info"):
                row = {}
                for ele in item:
                    if isinstance(ele, Tag):
                        row.update({ele.name: ele.string.split(" ")[0]})
                data.append(row)
    if len(data) != 0:
        dp.setDataList(data)
    else:
        print("no data to fetch!")
    dp.writeToCsv("천안 종관기상FROM=" + start_date + "END=" + end_date + " ")
Пример #3
0
def main():
    api_url = au.farm_area()
    soup = cn.getSoup(api_url + "1")
    dp = DataProcess()

    data = []
    pagenum = 0
    for pagenum in range(601):
        pagenum += 1
        soup = cn.getSoup(api_url + str(pagenum))
        for item in soup.find_all("model"):
            row = {}
            for ele in item:
                row.update({ele.name: ele.text.split(" ")[0]})
            data.append(row)

    if len(data) != 0:
        dp.setDataList(data)
    else:
        print("no data to fetch!")
    dp.writeToCsv()
Пример #4
0
def main(end_year, period):
    api_url = au.crop_price_url(end_year, period, 1, 1)
    soup = cn.getSoup(api_url)
    dp = DataProcess()
    data = []

    #item 안의 모든 자식을 해당 자식의 name:text 형태로 딕셔러니를 만든다
    #item 한개당 한개의 자식 딕셔너리 리스트를 원소로하는 리스트를 만들고
    #모든 item리스를 모아 data에저장한다.
    for item in soup.find_all("item"):
        row = {}
        for ele in item:
            row.update({ele.name: ele.string.split(" ")[0].replace(",", "")})
        data.append(row)
    if len(data) != 0:
        dp.setDataList(data)
    else:
        print("no data to fetch!")

    # data process 하는곳
    df = pd.DataFrame(data)
    df = (df[1:df.shape[0] // 2])
    df = df.drop([None, 'regday', 'yearavg'], axis=1)
    year_list = list(df['yyyy'])
    print(year_list)
    df = df.set_index('yyyy').T
    df = [float(x) for t in range(len(df)) for x in df.iloc[t]]
    y_m = [
        str(y) + str(m).zfill(2) for y in range(int(year_list[0]),
                                                int(year_list[-1]) + 1)
        for m in range(1, 13)
    ]

    df = pd.DataFrame(df, index=y_m)
    df.columns = ["all_area"]
    df.to_csv(
        "/home/hadoop/data/processed_data/price_data/processed_pear_price" +
        str(datetime.datetime.now()).split(".")[0].replace(":", "-").replace(
            " ", "") + ".csv",
        float_format='%.f')
Пример #5
0
from bs4 import BeautifulSoup
import math
import pandas as pd
import glob
import datetime

path = "/home/hadoop/data/processed_data/water_data/"

if (len(sys.argv) != 2):
    print("연도를 쓰시오")
    sys.exit()
year = sys.argv[1]

#지역정보를 가져옴
api_url = au.crop_kwater_url(1)
soup = cn.getSoup(api_url)
dp = DataProcess()
sido = []
for item in soup.find_all("sido"):
    sido.append(item.text)
sido = ['충남', '전남']

#지반종류 가져옴
api_url = au.crop_kwater_url(2)
soup = cn.getSoup(api_url)
wellnum = []
for item in soup.find_all("code"):
    wellnum.append(item.text)

#년도 정보를 가져옴
#api_url=au.crop_kwater_url(4)