안드로이드 HTML 파싱하기

JSoup을 사용해서 하면 간단하게 사용할 수 있다.

자바에서도 위에 사용하는 소스를 통해서 이요할 수 있지만, 안드로이드를 통해서 사용할 것이기 때문에 Gradle 을 통해 설치를 해 보겠다.

gradle 의 build.gradle (Module: app) 에 아래와 같은 문구를 추가합니다.

// jsoup HTML parser library @ https://jsoup.org/
compile 'org.jsoup:jsoup:1.10.3'

그리고 Gradle Sync Now를 눌러주는 것을 잊으면 안됩니다. 그래야 적용이 됩니다.

주의할점
메인화면에서 네트워크 연결을 사용하면 에러가 납니다. 메인에서 네트워크 연결을 바로 시도 하면 에러가 납니다. 이 때문에 하루를 날려 버렸습니다.

여러 예제를 보면 다들 AsyncTask를 통해서 이용하고 있습니다. 사용법도 간단하고, 예제도 있지 때문에 저도 같은 방법을 사용할 것입니다.

AsyncTask에 대한 설명이 필요하시면 IT 마이닝 블로그로 이동하기

class MainActivity 아래에

다음과 같은 코드를 추가 합니다.


private class MainPageTask extends AsyncTask<Void,Void,Void> {
    private Elements element;

    @Override
    protected void onPostExecute(Void result) {
        //doInBackground 작업이 끝나고 난뒤의 작업
        mainHello.setText(element.text());
    }

    @Override
    protected Void doInBackground(Void... params) {
        //백그라운드 작업이 진행되는 곳.
        try {
            Document doc = Jsoup.connect("http://example.com").get();
            element = doc.select("#algoList > tbody");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

사이트 example.com 를 파싱하려고 합니다.

doInBackground에서 작업을 하고 onPostExcute에서 결과가 끝나고 난 뒤의 작업을 수행합니다.

doInBackground에서 작업을 처리하려고 하면 오류가 납니다. 다른 메소드에 입력 하시는 것을 잊으면 안됩니다.

반응형

일상에 스며들어 있는 코드들을 가장 쉽게 배울 수 있는 사이트 ... Codecademy (코드카데미)


근래에 한국에서 프로그래머라는 직업이 부흥하고 있는 직업 중에 하나가 되었습니다. 미국에서는 이미 연예인 만큼이나 인정받는 직업입니다.

구글의 창업자 래리 페이지는 컴퓨터 언어는 필수적으로 배워야하는 학문이라고 말하기도 했습니다. 사고 방식을 개선하는데 도움이 된다는 것이 그 이유 중에 하나였습니다.

미국에서는 이미 초등과정에서 프로그램 과목을 개설해서 학습하고 있는 학교들도 있고, 정부차원에서 이 사업에 대해서 적극적으로 지원하고 있습니다.


배울 수 있는 언어


  • HTML & CSS
  • JAVAScript
  • jQuery
  • PHP
  • Python
  • Ruby


생소한 언어들대한 정보는 위키피디아에서 ... http://ko.wikipedia.org/wiki/프로그래밍_언어


Codecademy는 코드를 배울 수 있는 가장 빠른 방법입니다.


배워야할 주제별로 샘플코드들이 제시되고, 이를 수정하는 방법으로 배워나갈 수 있다. 직관적으로 바로 결과를 확인할 수 있기 때문에 자신이 입력하는 코드들이 제대로 이뤄진 것인지 알 수 있습니다.


http://www.codecademy.com


시작하기


http://www.codecademy.com/en/tracks/korean-web


facebook, google ID, twitter 로 바로 사용할 수 있습니다. 외국 사이트들의 open ID로 간단하게 클릭 몇번만으로 접속할 수 있습니다.

현재는 HTML 언어만 배울 수 있는 상태.

다른 언어를 배우려면 영어로 공부하여야 합니다.


저도 이제 공부하려고 사이트에 입문 하게 되었는데, 같이 입문 하시려는 분이 있으면 좋겠네요.

한두시간 정도 키보드를 두둘겨 봤는데, 좋은 키보드를 사고 싶은 충동이 듭니다.

그리고, 너무 어려워요.

단순한 취미로 시작하기에는 참으로 어렵다는 생각이 듭니다.


시작하면, 왼쪽에 지금 배우고 있는 코드에 대한 설명이 좌측에 나옵니다.

오른쪽에는 사용자가 입력하는 인터페이스와 오른쪽에 결과 화면이 나옵니다.

입력한 코드에 대한 결과가 즉각적으로 나와서 입력하는 중간에 자신의 실수 부분을 바로 파악할 수 있습니다.


반응형

+ Recent posts