Appia의 IT세상

파이썬[Python] 원하는 텍스트의 네이버 통합 검색 결과 제목 출력하기 본문

Python/Python Crawler[크롤러]

파이썬[Python] 원하는 텍스트의 네이버 통합 검색 결과 제목 출력하기

Appia 2021. 10. 11. 06:34
반응형

파이썬[Python] 원하는 텍스트의 네이버 통합 검색 결과 제목 출력하기

파이썬[Python] 원하는 텍스트의 네이버 통합 검색 결과 제목 출력하기

이번 포스팅은 웹 크롤링을 하면서, 한번쯤 해볼만한 네이버 검색 결과에 대해서 추출하는 방법에 대해서 간단히 이야기를 해볼까 합니다. 먼저, "테스트"라는 단어를 바탕으로 진행을 해볼까 합니다. 먼저, 검색에 대한 결과를 활용하기 위해서, 검색이 입력되어 있을 경우, 관련해서 웹페이지 주소의 변화를 살펴봤습니다. 

네이버 검색의 결과 

그리고 페이지 하단 쪽으로 들어가서, 페이지를 변경하면서 웹페이지 주소의 변화를 살펴봤습니다. 

네이버 검색의 결과 (다른 페이지의 결과) 

그랬더니, 다음과 같은 약간의 규칙성을 찾을 수 있었습니다. 즉, 앞 부분에서는 검색 결과의 페이지, 그리고 파란색 부분은 "테스트"라는 단어, 그리고 마지막 보이는 부분은 검색 결과물의 객체 시작 번호입니다. 

네이버 검색의 결과 (다른 페이지의 결과) - 페이지 수에 따른 규칙성 변화 

이 부분을 바탕으로 다음과 같이 다음과 같이 코드를 작성하였습니다. 

import requests
from bs4 import BeautifulSoup

def print_title(address, query):

    for i in range(2,10):
        startvalue = 15* i -29
        addr= address + str(i) +'&query='+query+'&research_url=&sm=tab_pge&start='+str(startvalue)+'&where=web'

        res = requests.get(addr)
        soup = BeautifulSoup(res.content, 'html.parser')


        items = soup.select('.link_tit')
        for item in items:

            print(item.text)


if __name__ == '__main__':
    baseaddress = 'https://search.naver.com/search.naver?display=15&f=&filetype=0&page='
    query = '테스트'

    for i in range(1,35):
        print_title(baseaddress, query)

여기에서 페이지를 정상적으로 읽어오기 위해서 다음과 같은 부분을 기본 주소로 삼았습니다. 

https://search.naver.com/search.naver?display=15&f=&filetype=0&page=

이 부분을 바탕으로 추가로 받을 인자값과 다음 부분을 결합하여 추출하고자 하는 페이지를 파싱합니다. 

'&query='+query+'&research_url=&sm=tab_pge&start='+str(startvalue)+'&where=web'

위의 코드를 결과를 보면 다음과 같은 결과가 나타납니다. 

에고그램 성격유형 테스트 - 인적성 무료검사 
 테스트 - 나무위키 
 심리테스트 심콩! - 심심할땐 심콩해! 재미있는 심리테스트! 
 [심리테스트] 자존감 테스트 - 심콩 - 무료 심리테스트 
 취향 분석 테스트 - 케이테스트 
 테스트 | TOAST UI :: Make Your Web Delicious! 
 정신연령 테스트 
 무료 심리테스트 - 싸이코패스 심리 테스트 
 한복BTI hanbokBTI-케이테스트 
 목록>테스트 > 랜선 가족메이커 > 행사>국립부산과학관 
 무료 심리테스트 
 무료 심리테스트 
...<중간 생략>
 세상의모든테스트-세모테 
 성격유형 테스트 - 테스트하로 
 2021 우정 테스트 
 에고그램 성격유형 테스트 - 인적성 무료검사 
 테스트 - 나무위키 
 ...<중간 생략>

이와 같은 방법으로 네이버 통합검색 결과의 각 항목의 제목을 추출할 수 있습니다. 

 

[파이썬 크롤링]네이버 스포츠 추천 뉴스 크롤링 하여 제목과 링크주소출력하기 (bs4, requests)

 

[파이썬 크롤링]네이버 스포츠 추천 뉴스 크롤링 하여 제목과 링크주소출력하기 (bs4, requests)

[파이썬 크롤링]네이버 스포츠 추천 뉴스 크롤링 하여 제목과 링크주소출력하기 (bs4, requests) 이전 포스팅에서는 추천뉴스의 제목을 추출하는 방법에 대해서 포스팅을 했습니다. 그 작업을 하고

appia.tistory.com

이번 포스팅은 파이썬[Python] 원하는 텍스트의 네이버 통합 검색 결과 제목 출력하기라는 주제로 간단히 포스팅을 해봤습니다. 실제로 이 부분을 바탕으로 다양한 방법으로 사용할 수 있습니다. 많은 사람들이 아시다시피, 악의적인 크롤링은 처벌의 대상이 될 수 있습니다. 크롤링에 대한 결과는 사용자 본인에게 책임이 있다는 부분을 인지하시길 바랍니다. 

반응형
Comments