파이썬 크롤링 결과를 데이터프레임으로 모아서 to_csv로 엑셀 파일로 저장하고 싶음
조회수 598회
while True:
print("Getting page {}...".format(page))
params["page"] = page
data = requests.post(url, json=params).json()
# uncomment to see all data:
# print(json.dumps(data, indent=4))
if not data["data"]:
break
# print some data:
for d in data["data"]:
print("{:<60} {} {}".format(d["mobile_title"], d["assets"], d["price"]))
page += 1
크롤링해와서 데이터 정리하고자 코딩 작업 중에 있습니다.
현재 이렇게 코딩했을 때 각 페이지당 아래처럼 결과들이 나열되는데, 이러한 결과들을 데이터프레임으로 모으고 싶은데 어떻게 해야 할까요. 이렇게 데이터프레임으로 모아서 to_csv로 엑셀 파일로 저장되는 걸로 코딩하려고 합니다.
<결과값>
Getting page 1...
1 2 3
1 2 3
1 2 3
Getting page 2...
1 2 3
1 2 3
1 2 3
1 답변
-
크롤링한 내용 하나하나를 딕셔너리형식으로 만들고, 그걸 쭉 list 에 수집합니다.
그리고, 마지막에 수집한 딕셔너리의 리스트를 pd.DataFrame 의 생성인자로 넘기면 데이터프레임이 만들어집니다.
data_dict_list = [] while True: print("Getting page {}...".format(page)) params["page"] = page data = requests.post(url, json=params).json() # uncomment to see all data: # print(json.dumps(data, indent=4)) if not data["data"]: break # print some data: for d in data["data"]: data_dict_list.append({ "mobile_title":d["mobile_title"], "assets":d["assets"], "price":d["price"]}) #print("{:<60} {} {}".format(d["mobile_title"], d["assets"], d["price"])) page += 1 df = pd.DataFrame(data_dict_list) df.to_csv("크롤링수집결과.csv", encoding="utf-8", index=False)
댓글 입력