안녕하세요. 인문계공돌이입니다.
오늘은 G마켓 사이트에서 생수 데이터를 수집하기 위해 크롤링을 해보겠습니다.
크롤링 허용 여부
홈페이지 링크 뒤에 /robots.txt를 붙여 확인한 결과
Allow 즉, 허용되었습니다.
크롤링
전체 카테고리에서 식품/생필품 > 커피/음료 > 생수/탄산수 > 생수로 이동하였습니다.
생수 브랜드는 제주삼다수, 스파클, 아이시스만 체크했고
무료배송 조건을 하나 더 달았습니다.
제품명이 있고 그 앞에 브랜드가 따로 표시되어 있습니다.
가격은 할인가 기준으로 했습니다.
필요한 라이브러리를 import 합니다.
selenium으로 크롤링을 하면 크롬창이 뜨게 되는데 굳이 그럴 필요가 없으므로 뜨지 않게 설정했습니다.
나중에 DataFrame으로 만들어줄 리스트를 세 개 형성하였습니다.
아까 위의 제품 사진에서 봤듯이 브랜드, 제품명, 할인가입니다.
10 Page 이상 있으므로 반복문을 써서 크롤링을 해주겠습니다.
간단하게 코드를 짰습니다.
2 페이지, 3 페이지 클릭해보면 주소에 p=(페이지번호)로 나타납니다.
저는 10 페이지까지 크롤링 할 것이기 때문에 range를 1부터 11 (이래야 11은 제외)로 설정했습니다.
첫 페이지가 url로 들어가고
제품명의 태그를 보면 span class='text__item'이라 select 해줬습니다.
가격은 strong class='text__value'입니다.
페이지 내의 원하는 태그들을 모두 select 했으면
반복문을 통해 text만 추출했습니다.
맨 처음 생성했던 리스트에 하나씩 추가했고
한 페이지가 끝나면 다시 반복문 처음으로 돌아가서 다음 페이지로 넘어가게끔 설정했습니다.
몇 페이지를 진행 중인지 print 문으로 확인했고
크롤링이 끝나면 '크롤링 완료'란 문구가 뜨게 했습니다.
각 리스트에 데이터가 잘 추가되었습니다.
마지막으로 DataFrame으로 만들면 완성입니다.
다음에는 SPSS로 각 통계 분석을 용이하게 하기 위해 정확한 용량을 계산해서 따로 변수로 만들고
가격 역시 쉼표를 없애 보겠습니다.
'Python' 카테고리의 다른 글
[크롤링] G마켓 농심 라면 데이터 수집 Python (0) | 2021.07.22 |
---|---|
[EDA, 시각화] G마켓 생수 데이터 Python (0) | 2021.07.21 |
[데이터 가공, 정규표현식] G마켓 생수 데이터 가공하기 Python (0) | 2021.07.19 |
[로또] 처음 뽑은 6개의 번호를 제외한다면? (0) | 2021.07.17 |
[크롤링] 하이마트 건조기 데이터 수집 Python (0) | 2021.07.16 |
댓글