본문 바로가기
Integration & Python

Python을 이용한 네이버 홈쇼핑 키워드 크롤링 예제

by 누워서 코딩 2021. 1. 26.

웹을 이용해 얻고 싶은 정보를 얻어 자동화하는 일을 웹 크롤링이라고 합니다.

다른 말로 웹 스크랩핑(Scraping)이라고도 합니다.

 

 

쉬운 예로, 웹 크롤링을 사용하면 네이버에서 제공하는 실시간 검색어 순위를 가져오는 일을 할 수 있습니다.

 

 

커서를 가져다 가면 메타 태그와 class가 보입니다.

 

좀 더 구체적으로 알아보고 싶다면 다음 처럼 소스코드 부분에서 ctrl+F10을 눌로 직접 찾아봐도 됩니다.

 

...

<span class="cd_tit">톱텍</span>

...

 

우리는 여기서 메타 태그는 span이고, class는 "cd_tit"이라는 것을 알았습니다.

 

파이썬을 사용하여 네이버의 실시간 키워드(실검)를 크롤링하는 방법은 구글링 해보면 쉽게 찾아볼 수 있습니다.

 

네이버 홈쇼핑으로 들어가서, 마찬가지로 F12로 소스 부분을 확인합니다.

 

인기 검색어 부분에 커서를 가져가면, 태그가 'a'이고 class가 'popular_srch_lst_li'라는 것을 확인할 수 있습니다.

 

 

본 블로그에서는 네이버 쇼핑몰의 키워드를 크롤링하는 예제로 알아보겠습니다.

 

파이썬에서 크롤링 코드를 작성하기 위해서 먼저 다음 2개의 모듈을 설치해야 합니다.

 

1. BeautifulSoup

 

 

beautifulsoup4

Screen-scraping library

pypi.org

 

2. requet

 

먼저 libraBeautifulSoup (bs4) 설치 방법입니다.

 

pip.exe가 설치되어 있는 기본 경로인 scripts 폴더에서 설치하셔야 합니다.

 

\scripts\pip install bs4

 

확인은 다음 'from bs4 import BeautifulSoup'를 입력해서 실행해 봅니다.

에러가 뜨지 않으면 정상적으로 설치 성공입니다.

 

url을 읽어오기 위한 모듈인 request도 설치합니다.

 

\scripts\pip install requests

 

from bs4 import BeautifulSoup
from urllib.request import urlopen

response = urlopen('https://search.shopping.naver.com/best100v2/main.nhn')
soup = BeautifulSoup(response, 'html.parser')
i = 1
f = open("naver_shop_key.txt", 'w')
for anchor in soup.select("a._popular_srch_lst_li"):
data = str(i) + "위 : " + anchor.get_text() + "\n"
i = i + 1
f.write(data)
f.close()

 

이제 순서대로 하나씩 해석해 봅시다.

 

###### 1. BeautifulSoup와 request 모듈을 import 한다. ######

 

from bs4 import BeautifulSoup

from urllib.request import urlopen

 

###### 2.  네이버 쇼핑몰의 url을 open 하고 html을 parser 한다. ######

 

response = urlopen('https://search.shopping.naver.com/best100v2/main.nhn')

soup = BeautifulSoup(response, 'html.parser')

 

###### 3. open("naver_shop_key.txt", 'w')

write 권한으로 naver_shop_key.txt 파일을 open을 사용해서 새로 생성한다. ######

 

###### 4. soup.select 함수 사용해서 a 태그의 "_popular_srch_lst_li" 클래스에 해당하는 키워드를 추출한다.

anchor.get_text() 함수를 사용해서 text 형식으로 추출한 후, text의 앞에는 숫자와 캐릭터 "위"를 붙인 후에 커서를 다음 칸으로 이동시킨다.

이렇게 저장된 data를 naver_shop_key.txt 파일 안에 write 한다. ######

 

for anchor in soup.select("a._popular_srch_lst_li"):

    data = str(i) + "위 : " + anchor.get_text() + "\n"

    i = i + 1

    f.write(data)

 

###### 5. for문의 연산 수행이 모두 완료되면 빠져나와서 f.close로 파일을 닫는다. ######

 

f.close()

 

다음처럼 실행 후의 생성된 text파일의 결괏값을 확인할 수 있습니다.

 

 

이 블로그의 다른 글 읽기

 

파이썬 자료형 예제로 따라해보기 #2

딕셔너리 자료형 따라 하기 딕셔너리(Dictionary)란? 대부분의 언어에서 말하는 해시(Hash)와 같은 연관 배열이라고 보면 된다. "fruit"라는 단어를 예로 보자. 딕셔너리 자료형에서는 key와 value라는 두

freernd.tistory.com

 

파이썬 자료형 예제로 따라해보기 #1

리스트 인덱싱 예제 리스트로 문자열처럼 인덱싱과 슬라이싱이 가능하다. 예제들을 한번 따라해보자. >>> a = [30, 20, 500] >>> a [30, 20, 500] >>> a[0] + a[2] 530 >>> a[-1] 500 >>> a = [100,200,300,['a','b','c']] >>> a[-1

freernd.tistory.com

댓글