일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- classList
- addEventListener
- Unity
- 회전
- 독립변수
- 연습
- Lerp
- 픽셀
- Quaternion
- javascript
- jQuery
- 코딩
- className
- 탑다운
- getItem
- Event
- euler
- 도린이
- intervals
- click
- setItem
- 자주 사용하는 Quaternion 함수
- topdown
- wsl
- 도트
- 웹스크래핑
- 종속변수
- PYTHON
- 2D
- vsCode
- Today
- Total
쫑가 과정
3주차 - 쿠팡 정보를 엑셀로 만들기 본문
2021.05.13 - [초심자의 기억/파이선_정보취합하기] - 2주차 연습 - 쿠팡 웹스크래핑
지난 번에 만든 쿠팡 수집을 엑셀로 옮겨보자!
필요한 것
pandas module
이유
Pandas의 DataFrame : 열과 행으로 구성된 엑셀 표와 같은 구조를 가진다.
pandas?
위 링크에서 가져 온 바로는
2008년에 출시된 pandas는 Python의 소프트웨어 라이브러리 확장 중 하나
Python에 저장된 데이터와 함께 작동하여 데이터를 다루고 분석한다.
Excel과는 반대로, Python은 다운로드와 이용이 완전 무료.
pandas 라이브러리는 data과학자와 분석가들이 매우 크고 매우 작은 범위까지 다양한 작업을 하기 위해 사용된다.
pandas가 수행할 수 있는 것:
- BeautifulSoup과 결합하여 스크래퍼의 텍스트를 데이터베이스로 넘긴다.
- 데이터를 빠르게 정리하고 파일 형식을 변환한다.
- 대규모 데이터 세트 처리한다.
- Matplotlib로 데이터 시각화한다.
신속하게 결과를 얻어야하는 모든 사람을 위한 엄청 좋은 라이브러리.
프로그램에 대한 학습은 Excel보다 어렵고 Python 및 코딩에 대한 기본 지식이 필요하다.
읽어보면 엑셀과 비교해 장점이 많다. 요약하자면
- 수백만 개의 데이터 포인트를 원활하게 처리(속도)
- DataFrame (데이터 세트의 해당 버전)에 포함 할 수있는 데이터 포인트의 수에 제한없음(용량)
- 데이터에 대해 복잡한 방정식과 계산을 만들고 사용하는 것도 더 쉬움(계산)
- 15 가지 이상의 다른 형식을 처리하고 쉽게 전환(파일변환)
- 쉽게 데이터를 정리할 수 있으며 데이터 허점 복구 및 중복 제거를 포함한 많은 프로세스를 자동화(데이터정리)
- 트렌드와 패턴을보기 위해 데이터를 시각화하는 데에도 매우 효과적(시각화)
- 그래프는 더욱 사용자 정의가 가능하며 원하는 개념을 거의 만들 수 있음(사용자정의)
The best course of action is actually to use Microsoft Excel and Python pandas together.
Python pandas와 Excel을 함께 사용하는게 제일 좋다고 한다!
pandas는 기본으로 제공해주지 않기에 설치해야한다.
pip3 install pandas
설치되었나 확인
pip list
pandas를 어떻게 사용할 것인가 보자
사용법
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_excel.html
ex)
import pandas as pd
df1 = pd.DataFrame([['a', 'b'], ['c', 'd']],
index=['row 1', 'row 2'],
columns=['col 1', 'col 2'])
df1.to_excel("output.xlsx")
col 1 | col2 | |
row 1 | a | b |
row 2 | c | d |
여러 기능이 있지만 예제정도면 뽑아낼 수 있으니 이정도만 사용해보자.
import requests
import pandas as pd
from bs4 import BeautifulSoup
results = []
for index in range(3):
page = index+1
params = {
"component" :"",
"q":"고양이",
"channel": "user",
"page": page
}
header = ["제품명", "가격", "할인율", "링크", "평점"]
headers = {
'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.85 Safari/537.36"
}
webpage = requests.get("https://www.coupang.com/np/search", headers=headers, params=params)
soup = BeautifulSoup(webpage.content, "html.parser")
getItem = soup.select("ul#productList li")
base_url = 'http://coupang.com'
for item in getItem:
row = []
item_name = item.select_one('div.name').text.strip()
item_price = item.select_one(
'strong.price-value').text.strip().replace(',', '')
item_link = base_url + item.select_one('a').get('href')
check_item_discount_rate = item.select_one('span.instant-discount-rate')
item.discount_rate = '할인 안함'
if check_item_discount_rate:
item_discount_rate = check_item_discount_rate.text.strip()
check_item_point = item.select_one('em.rating')
item.point = '없음'
if check_item_point:
item_point = item.select_one('em.rating').text.strip()
row.append(item_name)
row.append(item_price + '원')
row.append(item_discount_rate)
row.append(item_link)
row.append(item_point + '점')
results.append(row)
results_df = pd.DataFrame(data=results, columns=header)
results_df.to_excel('coupan_pandas.xlsx')
참고한 사이트
'프로그래밍 공부 > 파이선_정보취합하기' 카테고리의 다른 글
다시 해보는 웹 스크래핑 가상환경 세팅 (2.virtualenv) (0) | 2021.06.15 |
---|---|
다시 해보는 웹 스크래핑 가상환경 세팅 (1.VSCode에 WSL연동) (0) | 2021.06.14 |
마치고. (2) | 2021.05.28 |
4주차 - wsl에서 selenium 인스타 정보 엑셀수집하기 (0) | 2021.05.28 |
7가지 연산자를 이용한 계산 실습 (0) | 2021.05.17 |
Python 기초 이론 박살내기! (0) | 2021.05.17 |
2주차 연습 - 쿠팡 웹스크래핑 (2) | 2021.05.13 |
2주차_쇼핑페이지 크롤링하기(X) (1) | 2021.05.04 |