본문 바로가기

NAVER API 이용 + , excel 저장까지 실습 본문

BF 2024/웹 데이터 수집

NAVER API 이용 + , excel 저장까지 실습

jaegomhoji 2022. 3. 9. 01:15

< 네이버 쇼핑을 api를 통해 크롤링하고, 엑셀에 저장해본다 > 

< 검색어는 지오다노 티셔츠 .. 눈앞에 보여서? >

 

** 모듈화 프로세스 

1. url 생성 >  2. 테스트 페이지 수집 ( 서식 맞추기 ) > 3. 본 수집 >  4. 데이터 가공 >  5. 필요한 형태로 저장  

 

1. url 생성

* 우선 모듈화 이전에, 네이버 개발자 페이지에서 정보 수집을 원하는 종목의 파라미터들을 확인한다 

 

딱 요청 변수만 봤을때, 어떤식으로 집어 넣어야 하는지 감이 안온다.

예시를 보면, 요청해야 할 url 이 어떤식으로 구성되어 있는지 알 수 있다 

base url ~ search/ + shop(네이버 쇼핑) + ?query= + 인코딩된 검색어 + &display= ~ ....

 

각 항목마다 앞에 &가 붙고, 디스플레이 시작점 정렬방법 순으로 변수를 요청해야 함을 알 수 있다 

 

* 방금 알아낸 대로 url을 적절하게 분해하고, 재조립 해준다 

* 이후 gen_search_url("인자1","인자2"..) 으로 url을 생성해주는 모듈을 완성했다 

 

2) 테스트 페이지 수집

import datetime을 꼭 할 필요는 없다 

 

* 위에서 생성한 url의 헤더 정보에 api 아이디와 비밀번호를 넣어준 후, 반응을 수신해야한다.

* 네이버 개발자 센터에서 제공하고 있는 파이썬 서식을 활용한다

* 위에서 .xml 형식이 아닌 json 형식으로 정보를 요청했기 때문에

* json.loads(response.read().decode("utf-8")) 을 사용하고, 눈으로 가져온 정보를 보기 위해 디코딩도 해준다  

 

* 수집 모듈 fetch_page(앞서 생성한 url) 을 통해서 정보를 수집한다 

 

* 항목들을 열어보기 위해서는 수집한정보["항목"] 으로 확인할 수 있다 

["항목"][0] 을 하면 0번째 확인 

["항목"][0]["항목의 정보들"] 을 하면 0번째의 정보 확인 

 

4. 데이터 가공 ( 3 ~ 4 왔다갔다 ) 

 

* 모듈 struct_data(가져온 정보)를 생성한다, 각각의 정보들을 데이터 프레임에 넣어준다.

* delete_tag 모듈을 생성해서 불필요한 태그 정보들을 삭제해준다  

 

3. 본 수집 , 앞서 만든 모듈들을 조합하여 정보들을 수집한다 

 

* 데이터 프레임을 만들고.append 한 뒤 pd.concat(데이터프레임)을 하여 병합한다 

 

* 불필요한 인덱스가 생성되었을 경우 제거하고 바로 적용 

 

5. 엑셀에 저장하기  

* 저장 후 ls"경로"로 해당 폴더에 저장된 것을 확인 

 

* 저장한 파일 확인 

 

* 이후 플롯팅 

plt.ticks(rotation=각도)로 x값 항목들 출력 ( 원래 중복되서 안보이는 )  

 

 

'BF 2024 > 웹 데이터 수집' 카테고리의 다른 글

HTML(www)  (0) 2022.03.24
네이버 API 사용  (0) 2022.03.08
네이버 API 등록 및 사용  (0) 2022.03.08
Path , css 와 자손 태그  (0) 2022.03.03
Selenium 기초  (0) 2022.03.03
Comments