본문 바로가기
c#

네이버 카테고리별 인기 검색어 조회하기

by KurtKim80 2020. 7. 25.

목적 : 관심 카테고리별 인기 검색어를 자동으로 수집 하기.

아래는 네이버 쇼핑의 주소이다.

https://search.shopping.naver.com/best100v2/detail.nhn?catId=50000000 

 

BEST100 : 네이버쇼핑

최근 2일/7일 기준 네이버쇼핑을 통한 판매실적과 상품클릭수를 반영하여 매일 업데이트 됩니다. 지오다노 롯데단독 여 레인코트 379513 최저15,960원 트리플에이 무지티 반팔티 무지 반팔티셔츠...

search.shopping.naver.com

쇼핑에 들어가면 패션의류 ~ 생활건강 까지 카테고리가 보이고 각 카테고리별 인기검색어를 볼 수가 있다.

"https://search.shopping.naver.com/best100v2/detail/kwd.nhn?catId={0}&kwdType=KWD#"

위 주소의 catId 를 50000000에서 50000010 까지 바꿔가면서 웹브라우져에 입력해 보면

패션의류 ~ 면세점까지 총 10개의 페이지가 조회가 가능 하다.

이제 c#에서 프로그래밍으로 각 페이지를 HTTPGET으로 불러들이면서, 인기검색어 가 있는 영역을 가져오면 되겠다.

 

F12 키를 눌러 검색어가 적힌 Tag를 보면

a 태그의 class가 _popular_srch_lst_rank 인 item을 찾아가져 오면 되겠다.

 

nuget에서 RestSharp ,HtmlAgilityPack 을 설치해서 HTML을 가져오고 처리하면 빠르다.

RestClient client = new RestClient();

client를 생성해주고 base url을 "https://search.shopping.naver.com" 로 하고

Request에 Path를 "best100v2/detail/kwd.nhn?catId=50000000&kwdType=KWD#"" 로 하면

RestRequest req = new RestRequest(Path, Method.GET);
var response = client.Execute(req);

response.content에 해당 page의 html이 읽어 진걸 볼 수가 있다.

 

이제 HtmlAgilityPack 으로 그 html을 로드한다.

HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(response.Content);

이제 a tag의 class조건을 전부 조회하면 되겠다.

doc.DocumentNode.Descendants("//a[@class='_popular_srch_lst_rank']")

지정된 태그에서 하위의 태그와 class를 갖는 조건을 조회해 그 안의 조건들을 찾았으니

(title = 이름 ) 을 빼네 리스트 하면 되겠다.

필자는 각 검색어를 조회해 , 그 title을 search.naver페이지에서 다시 키워드를 검색해 서브검색어까지 조회해 활용하고 있다.

 

'c#' 카테고리의 다른 글

C# nuget reference  (0) 2020.08.31
Visual studio Extensions 추천  (0) 2020.08.06
Windows-Service-Plus 사용법  (1) 2017.08.15

댓글