Jsoup 라이브러리는 dependencies에
다음을 추가하면 사용이 가능하다.
compile 'org.jsoup:jsoup:1.10.2'
Jsoup은 웹 페이지의 Html을 파싱 하는데 유용한 라이브러리인데
로그인과 같이 인증이 필요한 페이지에 접근해서
값을 가지고 오는 경우 특별한 처리가 필요하다.
구글링을 해본 결과
Jsoup에서
1 2 3 4 5 | Connection.Response re = Jsoup.connect("로그인 페이지") .data("UserID", "MyID") .data("UserPW","MyPW") .execute(); | cs |
다음과 같이 웹 페이지에서 인증을 받아
Html 파싱이 가능하다고 하는데
되는 페이지가 있고 안되는 페이지가 있는 것 같다.
그래서 사용한 다른 방법은
웹뷰를 통해서 로그인시 쿠키값을 얻고
이 쿠키값을 이용하여
Jsoup에서 파싱을 하는 방법이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ... myWebView = (WebView) findViewById(R.id.webview); myWebView.getSettings().setJavaScriptEnabled(true); myWebView.setWebViewClient(new WebViewClient()); myWebView.loadUrl("로그인 URL"); url = myWebView.getUrl(); CookieManager cookieManager = CookieManager.getInstance(); cookies = cookieManager.getCookie(url); ... } ... Connection.Response re = Jsoup.connect("로그인 이후 접근가능 URL") .header("Cookie", cookies)//쿠키값 전달 .execute(); ... |
CooKieManager를 통해
WebView에서 Cookie 값을 가지고온다.
그리고 Jsoup에서
.header("Cookie",쿠키); 를 통해
Jsoup에서 로그인 유지가 가능해진다.
그 후 인증이 되어야 접근이 가능한 페이지에서
Html 파싱이 가능하다.
'Android 기법 > # Study' 카테고리의 다른 글
[Android/안드로이드]GridView에서 중복현상 해결 (0) | 2017.02.12 |
---|---|
[Android/안드로이드]CustomProgress Dialog 만들기[피카츄 Progress] (0) | 2017.02.09 |
[Android/안드로이드]PopupWindow 쉽게 사용하기[GitHub] (1) | 2017.02.02 |
[Android/안드로이드]간단하게 FireBase의 RealTime DataBase 사용하기[로그인,회원가입][GitHub] (5) | 2017.01.25 |
[Android/안드로이드]Target View/타겟 이펙트[GitHub예제][MaterialTapTargetPrompt] (0) | 2017.01.22 |
댓글