목적 : 관심 카테고리별 인기 검색어를 자동으로 수집 하기.
아래는 네이버 쇼핑의 주소이다.
https://search.shopping.naver.com/best100v2/detail.nhn?catId=50000000
쇼핑에 들어가면 패션의류 ~ 생활건강 까지 카테고리가 보이고 각 카테고리별 인기검색어를 볼 수가 있다.
"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 |
댓글