BookmarkSubscribeRSS Feed

네이버 실시간 검색어 순위 크롤링 SAS 코드

Started ‎06-15-2020 by
Modified ‎06-15-2020 by
Views 328

* 출처 : http://cafe.daum.net/statsas/3F8j/330

 

********************************************;

* 네이버 실시간 검색어 순위 크롤링 SAS 코드;

********************************************;

 

 

* PROC HTTP 사용하여 페이지 다운로드;

filename back "D:\WORK\SAS
aver
aver.txt";

 

proc http url    = "http://www.naver.com/

          out    = back

          METHOD = "GET"

          CT     = "Content-Type text/html; charset=UTF-8";

run;

 

data back;

     infile back length=len FIRSTOBS=589 obs=608 encoding="UTF-8";

 

     INPUT;

     LENGTH VAR $100;

     VAR = SUBSTR(_INFILE_,INDEX(_INFILE_,'">')+2,INDEX(_INFILE_,"</option>")-( INDEX(_INFILE_,'">')+2));

run;

 

 

***********************************************************;

* FILENAME URL 구문을 사용하여 페이지 다운로드(SUBSTR 함수로 소스 파싱);

filename foo url 'http://www.naver.com/';

       

data data;

     infile foo length=len FIRSTOBS=589 obs=608 encoding="UTF-8";

     input record $varying200. len;

     VAR = SUBSTR(record,INDEX(record,'">')+2,INDEX(record,"</option>")-( INDEX(record,'">')+2));

run;

 

 

***********************************************************;

* FILENAME URL 구문을 사용하여 페이지 다운로드(PERL 함수로 소스 파싱1);

filename foo url 'http://www.naver.com/';

data BACK2;

     infile foo length=len FIRSTOBS=589 obs=608 encoding="UTF-8";

     input;

     re1 = prxparse("s/<(.|
)*?>//");

     textline =  prxchange(re1, -1,_INFILE_);

run;

 

 

***********************************************************;

* FILENAME URL 구문을 사용하여 페이지 다운로드(PERL 함수로 소스 파싱2);

filename foo url 'http://www.naver.com/';

 

data BACK3;

     infile foo FIRSTOBS=589 obs=608 encoding="UTF-8";

     input ;     

     textline =  prxchange(prxparse("s/<(.|
)*?>//"), -1,_INFILE_);

run;

 

 

***********************************************************;

* FILENAME URL 구문을 사용하여 페이지 다운로드(PERL 함수로 소스 파싱1);

* HTML 실시간 순위 위치를 검색(<select name="query">);

 

filename naver url 'http://www.naver.com/';

 

data BACK4;

     infile naver LENGTH=LEN encoding="UTF-8";

     RETAIN CNT;

     input  VAR $VARYING32676. LEN;

     IF INDEX(VAR,'<select name="query">') THEN CNT = _N_;

     IF _N_ > CNT AND _N_ <= CNT+20 THEN DO;

        textline =  prxchange(prxparse("s/<(.|
)*?>//"), -1,_INFILE_);

        OUTPUT;

     END;

          

run;

Version history
Last update:
‎06-15-2020 01:07 AM
Updated by:
Contributors

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

Article Labels
Article Tags