파이썬/크롤링

[python-파이썬] 8 네이버에서 블로그 정보 크롤링 (crawling) - 1탄

모두의 실험실 2022. 4. 21. 21:07
728x90

안녕하세요. 모두의 파이썬입니다. 네이버에서 블로그 정보 크롤링을 하겠습니다. 크롤링의 영역을 넘어서 코딩을 왜 하는가를 곰곰이 생각해 보면, 코딩이라는 도구를 통해서 반복적인 것을 처리하기 위함입니다. '반복적'이라는 단어를 변형하면 '동일한 형태'라는 단어로 바꿀 수 있고 본인이 구현한 코드를 지속적 사용한 형태로 사용하기 위해서는 '동일한 형태'로 구현하는 습관을 가져야 합니다. 나만 아는 것은 경쟁력을 강하게, 누구나 아는 것을 모를 때는 경쟁력을 약하게 한다는 것을 명심하십시오.   

 

전체 글을 요약하면, 네이버에서 블로그 정보 크롤링을 하기 위해 네이버 검색 결과 주소 형태를 구현하고 찾기입니다.

항상 1등만 쫓아가면 된다. 명심하세요. 키워드는 '삼성전자'로 하겠습니다. 네이버에서 '삼성전자'를 검색하고 상단에 'VIEW'를 누릅니다. 그러면 '블로그' '옵션'이 화면에 보입니다. 블로그부터 클릭하고 옵션을 클릭합니다. 모두의 파이썬은 코드를 구현하기 전에 수동으로 실행하여, 구현 방법을 고민하고 찾아냅니다.

ⓒ삼성전자 검색결과, 출처 네이버검색 VIEW

 

모두의 파이썬은 'VIEW' '블로그' '옵션' '최신순' '1시간'의 키워드를 기반으로 블로그 정보 크롤링 코드를 구현하기로 결정했습니다. 1시간으로 검색해 보니 제품이 나옵니다. 주소창에 url을 확인해 보겠습니다.  https://search.naver.com/search.naver?where=blog&query=삼성전자&sm=tab_opt&nso=so%3Add%2Cp%3A1h 가 나옵니다.

ⓒ삼성전자 검색결과 블로그/최신순/1시간, 출처 네이버검색 VIEW

 

 

항상 스스로 해결하는 능력을 길러야 합니다. 반복적인, 동일한 형태를 찾아내야 합니다. 학습의 방식은 다양하지만, 코딩은 구현이 목적이기에 반복적 실행으로 능력을 키울 수 있습니다. 미션은 주소의 형태 분석입니다. 다른 그림 찾기 해본 적 있나요? 그것과 유사하게 해보겠습니다. 관련도 순 최신순을 비교해 보겠습니다.

관련도순 :  https://search.naver.com/search.naver?where=blog&query=삼성전자&sm=tab_opt&nso=so%3Ar%2Cp%3A1h

최신순 : https://search.naver.com/search.naver?where=blog&query=삼성전자&sm=tab_opt&nso=so%3Add%2Cp%3A1h           

관련도 순은 Ar 최신 순은 Add로 주소가 달라지게 됩니다.

이번에는 1시간 1일을 비교해 보겠습니다.

1시간 : https://search.naver.com/search.naver?where=blog&query=삼성전자&sm=tab_opt&nso=so%3Add%2Cp%3A1h 

1일 : https://search.naver.com/search.naver?where=blog&query=삼성전자&sm=tab_opt&nso=so%3Add%2Cp%3A1d

1시간은 1h 1일은 1d로 주소가 달라지게 됩니다.

 

url을 키워드와 시간의 변수로 구현하겠습니다. url = 'https://search.naver.com/search.naver?where=blog&query=' + keyword + '&sm=tab_opt&nso=so%3Add%2Cp%3A' + hour 를 기반으로 해당주소의 html정보를 가져오겠습니다. 코드 참조하세요.

 

 

 

In [9]:
def get_html(url):
    ## 브라우저 호환을 위해서 설정
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '+ \
        '(KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
                } 
    ##해당 url에 htlm(정보) 요청에사용 / url은 사용자가 원하는 url
    r = requests.get(url, headers=headers) 
    ## 해당 url의 html을 사용자가 활용하기 쉽게 변환
    html = BeautifulSoup(r.content, 'html.parser')
    ## 결과값 전달
    return html

keyword = '삼성전자'
hour = '1h'
url = 'https://search.naver.com/search.naver?where=blog&query=' + \
    keyword + '&sm=tab_opt&nso=so%3Add%2Cp%3A' + hour

get_html(url)
 

1탄에서는 블로그 크롤링 하기위해 네이버 블로그 주소찾는 방법과 주소규칙에 대해 알아보았습니다.

 

print('모두의 파이썬')

※좋아요/댓글은 서로를 응원합니다!

728x90
반응형