NAVER API 이용 + , excel 저장까지 실습 본문
< 네이버 쇼핑을 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 |