# -*- coding: utf-8 -*-
import os
from bs4 import BeautifulSoup
from urllib.request import urlopen
import pandas as pd
output_path = "output"
output_file = "고속_test.csv"
if not os.path.exists(output_path):
os.makedirs(output_path)
df = pd.DataFrame(columns=['arrPlaceNm', 'arrPlandTime', 'charge', 'depPlaceNm', 'depPlandTime', 'gradeNm', 'routeId']) # 엑셀 헤더정보
i=0
url = 'xml정보 주소'
data = urlopen(url).read()
soup = BeautifulSoup(data, "html.parser")
items = soup.find("items")
for item in items.findAll("item"):
df.loc[i] = [item.arrplacenm.text, item.arrplandtime.text, item.charge.text, item.depplacenm.text,
item.depplandtime.text, item.gradenm.text, item.routeid.text]
i=i+1
df.to_csv(os.path.join(output_path, output_file), encoding='euc-kr', index=False)
위와 같이 pandas를 이용해 어렵지 않게 csv로 원하는 정보를 얻을수 있었다.
하지만 여기에서 문제가 발생했다.
위와같이 YYYYMMDDHHmm의 데이터를 지수형으로 표시해주고있다.
Ctrl + C로 복사후 메모장 같은 곳에 붙여 넣어도 지수형으로 붙여 넣어진다.
위 문제가 생긴 2개의 정보에 아래와 같이 코드를 추가해 주었다.
df['arrPlandTime'] = '="' + df['arrPlandTime'] + '"'
df['depPlandTime'] = '="' + df['depPlandTime'] + '"'
이제 다시 엑셀을 확인해보자
엑셀에도 이쁘게 잘 나오고
복사 후 메모장 등에 붙여넣어도 정확하게 표시된다.
'Python' 카테고리의 다른 글
python pandas로 중복된 데이터 제거하기 (0) | 2019.03.15 |
---|---|
python pandas 이용해서 xml정보 파싱 후 csv 엑셀로 저장하기[2] (0) | 2019.02.12 |