신기성

API requesting done

var readline=require('readline');//입력받기 위한 모듈
var r=readline.createInterface({input:process.stdin,output:process.stdout});//키보드 입출력 정의
var rtfw="http://www.rankedftw.com/search/?name=";//rtfw에서 기본 검색 url
var rtfw1="http://www.rankedftw.com/search/?name=";//rtfw에서 기본 검색 url
var rtfw2="http://www.rankedftw.com/player/"
var league='silver_2';
var region='KR';
//
......@@ -14,8 +15,8 @@ var fs=require('fs');//파일시스템 사용
//
r.question("분석을 원하는 아이디를 입력하세요 : ",function(answer){//question메소드에서 callback함수 생성
console.log("입력완료! 분석중...");//callback함수란 이벤트가 왔을 때 실행되는 함수이다. answer에 검색을 원하는 아이디가 담겨있다.
rtfw=rtfw+answer;//검색 url 구성
console.log(rtfw);//검색 url 확인
rtfw1=rtfw1+answer;//검색 url 구성
console.log(rtfw1);//테스트용 : 검색 url 확인
//
//client.fetch(rtfw,param,function(err,$,res){
//if(err){console.log(err);return;}
......@@ -28,14 +29,18 @@ r.question("분석을 원하는 아이디를 입력하세요 : ",function(answer
//
// var parsing_html=fs.readFile(rtfw,'utf8',(err,data)=>{//html reading fs 사용
//err? console.log(err) : console.log('okay cheerio!');//에러나면 에러출력, 이외엔 okay 메시지
request(rtfw,(error,response,body)=>{//rtfw url 불러오기
var username='';//username문자열 선언
var userleague='';//userleague 문자열 선언
var userregion='';//userregion 문자열 선언
var usernumber='';//usernumber 문자열 선언
request(rtfw1,(error,response,body)=>{//rtfw url 불러오기
if(error){throw error};//에러처리
let $ = cheerio.load(body);//rtfw가 body이다. $로 jquery방식으로 html탐색
try{//try_catch구문
let username='';//username문자열 선언
let userleague='';//userleague 문자열 선언
let userregion='';//userregion 문자열 선언
let usernumber='';//usernumber 문자열 선언
// try{//try_catch구문
//let username='';//username문자열 선언
//let userleague='';//userleague 문자열 선언
//let userregion='';//userregion 문자열 선언
//let usernumber='';//usernumber 문자열 선언
$('ul').find('a').each(function(index,elem){//ul 태그 아래 a태그를 찾는다.
username=$(this).find('.name').text().trim();//name클래스를 찾아 공백빼고 텍스트화
userleague=$(this).find('.league').text().trim();//league클래스를 찾아 공백빼고 텍스트화
......@@ -43,21 +48,50 @@ request(rtfw,(error,response,body)=>{//rtfw url 불러오기
if((username===answer)&&(userregion===region)){//아직 리그 구현 안함-리그는 그림으로 비교
console.log(`${username}`);//테스트용 : 유저네임 출력
console.log(`${userregion}`);//테스트용 : 유저리전 출력
var localnumber=$(this).toString().slice(29,43);//rtfw에서 사용하는 사용자번호를 문자열로 넉넉히 자름
var localindex1=localnumber.search('/');//첫번째 슬레시 발견하는 인덱스 검출
localnumber=localnumber.slice(localindex1+1);//앞부분 슬래시 자른다.
var localindex2=localnumber.search('/')-localindex1+1;//두번째 슬레시 발견하는 인덱스 검출
localnumber=localnumber.slice(0,localindex2);//뒷부분 슬래시 자른다.
console.log(`${localnumber}`);//테스트용 : 로컬넘버 출력
var usernumber=$(this).toString().slice(29,43);//rtfw에서 사용하는 사용자번호를 문자열로 넉넉히 자름
var localindex1=usernumber.search('/');//첫번째 슬레시 발견하는 인덱스 검출
usernumber=usernumber.slice(localindex1+1);//앞부분 슬래시 자른다.
var localindex2=usernumber.search('/')-localindex1+1;//두번째 슬레시 발견하는 인덱스 검출
usernumber=usernumber.slice(0,localindex2);//뒷부분 슬래시 자른다.
console.log(`${usernumber}`);//테스트용 : 유저넘버 출력
if(rtfw2.length>33){//하나라도 붙어있으면
rtfw2=rtfw2;//아무것도 안한다.
}else{//그렇지않고 아무것도 안붙어있으면
rtfw2=rtfw2+usernumber+'/';//rtfw2 url갱신
}
console.log(rtfw2);//테스트용 : rtfw2 출력
}//이름서버리그비교if종료
});//ul a find문 종료
var profileID='';
request(rtfw2,(error,response,body)=>{//rtfw2 url 불러오기
if(error){throw error};//에러처리
console.log('request2 processing');//테스트용 : request2 실행여부 출력
let $ = cheerio.load(body);//rtfw2가 body이다. $로 jquery방식으로 html탐색
$('.content').find('.bnet-link').each(function(index,elem){//content 클래스 안의 bnet-link클래스를 포함하는 요소를 찾는다.
profileID=$(this).toString().slice(62,72);//얻고자 하는 profileID를 포함하여 앞뒤로 적당히 자른다.
var localindex3=profileID.search('/');//첫번째 슬레시 발견하는 인덱스 검출
profileID=profileID.slice(localindex3+1);//앞부분 슬래시 자른다.
var localindex4=profileID.search('/')-localindex3;//두번째 슬레시 발견하는 인덱스 검출
profileID=profileID.slice(0,localindex4);//뒷부분 슬래시 자른다.
console.log(`${profileID}`);//테스트용 : profileID 출력
});//a bnetlink 종료
console.log(`${profileID}`);//테스트용 : profileID 출력
});
}catch(error){
console.error(error);
}
});
var match_history_1="https://kr.api.blizzard.com/sc2/legacy/profile/3/1/"
var match_history_2="/matches?access_token=US0q3wV6W1fIYZmRnEBbNvUrRHYZhwANIi"
var match_history_url=match_history_1+profileID+match_history_2;
console.log(match_history_url);
request(match_history_url,(error,response,body)=>{
if(error){throw error};
console.log('request3 processing');
//console.log(body); //테스트용: response body 출력
});//request3종료
});//request2종료
// }catch(error){
// console.error(error);
// }//try_catch구문 종료
});//request1 종료
// });//parsing_html 끝
//
......
......@@ -5,5 +5,5 @@
5. a.player에서 profileID를 추출한다. ->플레이어 페이지나 프로필 페이지 등등 활용 가능
6. profileID로 API에서 필요정보 요청
주의사항 : 한명을 특정해야함. 특정번호는 꼭 7자리가 아닐수 있다.
주의사항 : 한명을 특정해야함. 특정번호는 꼭 7자리가 아닐수 있다. 맨 처음 뜬 사람 기준
없애야 할 철자 : y e r / " 5가지
......