Toggle navigation
Toggle navigation
This project
Loading...
Sign in
오원석
/
StarCraft2 Build Recommendation
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
신기성
2018-12-08 21:21:46 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
6f587c4c2b70f8affbc1695b172d2d009fc27707
6f587c4c
1 parent
a68209b0
API requesting done
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
56 additions
and
22 deletions
FindUser.js
process2.txt
FindUser.js
View file @
6f587c4
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 확인
rtfw
1
=
rtfw1
+
answer
;
//검색 url 구성
console
.
log
(
rtfw
1
);
//테스트용 :
검색 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 끝
//
...
...
process2.txt
View file @
6f587c4
...
...
@@ -5,5 +5,5 @@
5. a.player에서 profileID를 추출한다. ->플레이어 페이지나 프로필 페이지 등등 활용 가능
6. profileID로 API에서 필요정보 요청
주의사항 : 한명을 특정해야함. 특정번호는 꼭 7자리가 아닐수 있다.
주의사항 : 한명을 특정해야함. 특정번호는 꼭 7자리가 아닐수 있다.
맨 처음 뜬 사람 기준
없애야 할 철자 : y e r / " 5가지
...
...
Please
register
or
login
to post a comment