DT - August 03, 2020 · 3 mins read

파이썬 공부 - 네이버 실검 크롤링

세상에는 검색하면 정말 많은 자료가 나온다. 되는 것도 있고 안되는 것도 있고 일단은 맛보기를 하는 게 중요한데 걸러내는 것도 엄청난 일이다.

네이버 실시간 검색어 크롤링 코드

여튼 2020.08.03 제목에 적힌 날짜에 동작하는 코드를 올려둬야 겠다. 시작은 구글 검색이다 엄청나게 많은 코드들이 나오지만 이전 코드는 동작을 하지 않는 다는 단점이 있다. 개념정도는 이해에 도움이 되지만 검색도 아주 잘 해야 한다. 아주 최근 코드로 검새해서 아래 블로그님이 잘 정리해 둔 글에서 가져와서 내 PC 에서 테스트해 본 결과를 올려둘 예정입니다.

현재 네이버 실시간 검색어 크롤링 방법이 달라졌다. 유튜브, 블로그 등에 많은 예제가 있지만… 해법은 … 1. 네이버 메인 페이지가 아닌 실시간 검색어를 관리하는 곳에서 크롤링하는 것 2. 그리고 ‘유저 정보’를 설정하여 ‘사람’ 임을 알려주는 것

    # from https://jaeho0613.tistory.com/112
    
    # python에서 HTTP 요청을 보내는 모듈
    import requests
    # bs4 라 불리는 html 분석 라이브러리
    from bs4 import BeautifulSoup
    
    # 유저 설정
    headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36'}
    
    # 네이버 메인이 아닌 DataLab 페이지
    url = 'https://datalab.naver.com/keyword/realtimeList.naver?where=main'
    
    # User 설정
    res = requests.get(url, headers = headers)
    
    # res.content 주의
    soup = BeautifulSoup(res.content, 'html.parser')
    #print(soup)
    
    # span.item_title 정보를 선택
    data = soup.select('span.item_title')
    #print(data)
    #[<span class="item_title">자연재난 재난문자</span>, <span class="item_title">천안</span>, ...itle">귀임</span>]
    
    # for 문으로 출력해준다.
    for item in data:
        print(item.get_text())
            # 스트링 아이템이 하나인 경우에는 get_text()와 string 이 동일하다.
        #print(item.string)
    
    #data = soup.select("li.ranking_item")
    ## for 문으로 출력해준다.
    #for item in data:
    #    print(item.get_text())

블로그를 드래그 안되도록 해 두어 불편할 것 같아 gist 코드도 다시 추가한다. raw code 보기 하면 그냥 코드를 긁어올 수 있다.

관심 코드 부분

코드에서 보면, get_text() 를 사용하고 있길래 string 과 무슨 차이가 있는지 간략히 조사해보고 간단하게 테스트한 코드도 넣어둬 봤다. 신기한 함수를 다 구현해 두고 있어 요즘은 잘 찾아 쓰는게 짱땡~~ 아래 글을 참고해 보세요. 둘 다 html 태그를 제거하고 남는 문자열만 올려주는 함수인데 약간 차이가 있긴하다.

[파이썬] BeautifulSoup을 이용해서 텍스트 추출하기: get_text(), string BeautifulSoup을 이용해서 텍스트를 추출하는 방법은 대표적으로 두 가지가 있습니다. 하나는 get_text() 이용하는 것이고, 다른 하나는 string를 이용하는 것입니다. 두 방식의 차이점에 대해서 알아보고…

파이썬 네이버 실검 크롤링 결과

현재 내 컴퓨터에서 실행한 결과는 아래와 같다.

네이버 실시간 검색어 크롤링 결과

아래 그림의 데이터를 가져와서 출력한 것입니다. 소스코드에 url 이 잘 적혀 있죠? 😁😁

네이버 데이터랩 DataLab 실시간 검색어 순위 화면

실시간 검색어를 가져오는 파이썬 코드 테스트 완료~~ 많은 비 다들 조심하세요! ^>^

폭우 자전거 도시

Genaro Servín 님의 사진, 출처: Pexels