프로젝트
[크롤링] 네이버 뉴스 URL 쿼리 파라미터
blaxsior
2023. 9. 4. 21:46
현재 키워드를 기반으로 네이버 기사 본문 및 댓글 목록을 가져오는 프로젝트를 진행하고 있어 알게된 점을 정리해둔다.
네이버의 뉴스 검색 탭의 경우 옵션 탭을 통해 여러가지 필터 항목을 제시한다.
해당 옵션 목록을 단순 검색 뿐만이 아니라 크롤링에도 활용할 수 있다면 더 효율이 높아질 것이다. 또한 당연하게도 이러한 옵션들은 크롤링 과정에서도 활용할 수 있다.
위 보이는 옵션들은 url의 query parameter 상에 표현된다.일부 검색 항목을 변경해가면서 검색을 진행하면 어떤 쿼리 값이 옵션과 대응되는지 볼 수 있다. 예를 들어 아래와 같이 검색 옵션을 지정하고 "윤석열"을 검색해보자.
위 옵션에서 발생한 URL은 다음과 같다.
https://search.naver.com/search.naver?where=news&sm=tab_pge&query=%EC%9C%A4%EC%84%9D%EC%97%B4&sort=1&photo=0&field=0&pd=4&ds=2023.09.03.15.52&de=2023.09.04.15.52&mynews=1&office_type=1&office_section_code=1&news_office_checked=1032&office_category=0&service_area=0&nso=so:dd,p:1d,a:all&start=11 |
다양한 쿼리가 있는데, 여러 옵션을 바꾸는 과정에서 알게된 쿼리들 중 의미 있어 보이는 일부를 표로 정리한다.
쿼리 이름 | 설명 | 값 |
where=news | 뉴스 검색임을 의미 | - ( 뉴스 기사 검색이면 디폴트 ) |
query=검색어 | 검색어 자리 | 검색하고 싶은 값 |
sort=N | 정렬 기준 | 0: 관련도순, 1: 최신순, 2: 오래된순 |
pd=N | 기간 기준 | 0: 전체 | 1: 1주 | 2: 1개월 | 3: 기간 설정(ds, de) | 4: 1일 | 5: 1년 | 6: 6개월 | 7 ~ 12: 시간 기준 | 13: 3개월 |
news_office_checked: N | 뉴스 언론사 번호(언론사 필터) | 언론사 번호에 맞는 값 |
mynews=1 | 언론사 필터 적용 여부 | 0: 언론사 전체, 1: 언론사 필터 적용됨 |
office_type=1 | 언론사 검색 필터 부분 | 언론사 분류 = 1. (나머지는 알아서 찾아보기) |
ds | 검색 시작일 | YYYY.MM.DD.HH.MM 꼴 ( HH,MM은 큰 의미 X ) |
de | 검색 마지막일 | YYYY.MM.DD.HH.MM 꼴 ( HH,MM은 큰 의미 X ) |
nso=so:dd,p:1d,a:all | so는 sort, p는 pd에 대응되는 문자열을 가지며, sort + pd 또는 nso을 지정하면 된다. |
직접 입력: p:fromYYYYMMDDtoYYYYMMDD 이외의 경우-> p:1d, all 등 |
start | 검색한 뉴스 시작 번호. 10 단위로 증가 | 1에서 시작, 1 + 10 * N 꼴의 자연수 |
위에서 사용할만한 옵션은 pd = 3, mynews = 1, office_type = 1, news_office_checked: N 같은 것이 있다. pd = 3으로 지정하면 ds, de 쿼리를 이용하여 구체적인 검색 시작 및 끝 날짜를 지정할 수 있으므로 요구 날짜 범위 내 데이터 탐색이 가능하다.