Jsoup Library
getLevel.java

jar : http://jsoup.org/download

API : http://jsoup.org/apidocs/



자동 파싱
Document doc = Jsoup.parse(....);



element 가져오기
Element e = doc.select("div[id=이름]").first();

" " 안에 필요한 요소 직접 입력.
div, a, table 등등..

[] 안에는 클래스 혹은 id 입력
class=first
id=seq_container
등등

.first()로 첫번째 element로 이동



element를 Iterator로 사용

Iterator<Element> it = doc.select("div[id=seq_container]").select("table").iterator();
it.next();
// 이후 사용



eagate서 악곡 레벨(int)만 받아오는 한줄코드(로그인 필요)

public int getBscLevel(String html) {
return Integer.parseInt(Jsoup.parse(html).select("div[id=seq_container]").first()
.select("table").iterator().next().child(0).child(0).child(1).html().substring(8));
}
by 카모 | 2013/02/27 09:29 | 트랙백
HttpClient 샘플 - form based login
formBasedLogin.txt

1. 301 or 302 에러를 뱉어낼 땐 정상 처리 된거니 리다이렉트 시키면 됨. (혹은 실제 필요한 주소로 다시 httpGet 사용)
출처 : http://hc.apache.org/httpcomponents-client-ga/examples.html




2. form 태그에 있는 모든 input 요소를 추가하자. 하나 빠졌더니 로그인 안되더라
nvps.add(new BasicNameValuePair("KID", KID));
nvps.add(new BasicNameValuePair("pass", pass));
nvps.add(new BasicNameValuePair("OTP", "")); <- 이거



3. 인코딩 할 때 일어 페이지에 charset은 Shift-JIS로 되 있는데 HTTP header 보면 windows-31j라고 뜸.
windows-31j  -> JAVA에서 MS932
여기서 또 며칠 삽질.
캐릭터셋 인코딩 참고는 여기
InputStream istream = null;
BufferedReader br = null;
try {
istream = 데이터스트림연결();
br = new bufferedReader(new InputStreamReader(istream, "MS932");
while((line = br.readline()) != null) {
...
}
}

by 카모 | 2013/02/26 17:43 | 삽질 | 트랙백

< 이전페이지 다음페이지 >