2

This is the part of my html code

                    <div class="entry themeform">
                        <h3>dr James &#8211; opiekun naukowy</h3>
    <p><a href="http://www.page.com/picture.jpg"><img class="alignnone size-medium wp-image-31" alt="grynia" src="http://www.page.com/picture.jpg" width="200" height="300" /></a></p>
    <h3>Kevin &#8211; prezes</h3>
    <p><a href="http://www.page.com/picture.jpg"><img class="alignnone size-medium wp-image-35" alt="prezes" src="http://www.page.com/picture.jpg" width="217" height="300" /></a></p>
    <h3>Lucy &#8211; wice prezes</h3>
    <p><a href="http://www.page.com/picture.jpg"><img class="alignnone size-medium wp-image-36" alt="Lucy" src="http://www.page.com/picture.jpg" width="225" height="300" /></a></p>
    <h3>Zarząd</h3>
    <p><a href="http://www.page.com/picture.jpg"><img class="alignnone  wp-image-37" alt="zarzad_KNSE" src="http://www.page.com/picture.jpg" width="489" height="256" /></a></p>
                        <div class="clear"></div

>
                </div><!--/.entry-->

Firstly, I want to parse text from tags in this div. It also would be nice if you help me with parsing the images in this div (I changed picture urls, because of privacy). I am new in jsoup, so I would be grateful if you write me a code, just for parsing the text to the android activity.

EDIT Ok, for the beginning I am trying to parse the title as it shown in yours (SMR) tutorial.

Here is the code:

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

import com.example.uwbnewapptest.R;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;

public class KnseActivity extends Activity {

    //TextView title;
    String url="http://www.google.com";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.knse_main);
        //title = (TextView) findViewById(R.id.textView1);

    }


    public void bt(View v){
        new Title().execute();
    }

     private class Title extends AsyncTask<Void, Void, Void> {
            String title;



            @Override
            protected Void doInBackground(Void... params) {
                try {
                    // Connect to the web site
                    Document document = Jsoup.connect(url).get();
                    // Get the html document title
                    title = document.title();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                return null;
            }

            @Override
            protected void onPostExecute(Void result) {
                // Set title into TextView
                TextView txttitle = (TextView) findViewById(R.id.textView1);
                txttitle.setText(title);
            }

        }

}

But when I run app and click on the button, I have an error

EDIT 2:

06-21 16:18:01.808: E/AndroidRuntime(28063): FATAL EXCEPTION: AsyncTask #2
06-21 16:18:01.808: E/AndroidRuntime(28063): Process: com.example.uwbnewapptest, PID: 28063
06-21 16:18:01.808: E/AndroidRuntime(28063): java.lang.RuntimeException: An error occured while executing doInBackground()
06-21 16:18:01.808: E/AndroidRuntime(28063):    at android.os.AsyncTask$3.done(AsyncTask.java:300)
06-21 16:18:01.808: E/AndroidRuntime(28063):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
06-21 16:18:01.808: E/AndroidRuntime(28063):    at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
06-21 16:18:01.808: E/AndroidRuntime(28063):    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
06-21 16:18:01.808: E/AndroidRuntime(28063):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
06-21 16:18:01.808: E/AndroidRuntime(28063):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
06-21 16:18:01.808: E/AndroidRuntime(28063):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
06-21 16:18:01.808: E/AndroidRuntime(28063):    at java.lang.Thread.run(Thread.java:841)
06-21 16:18:01.808: E/AndroidRuntime(28063): Caused by: java.lang.NoClassDefFoundError: org.jsoup.Jsoup
06-21 16:18:01.808: E/AndroidRuntime(28063):    at com.uwbapp.KnseActivity$Title.doInBackground(KnseActivity.java:43)
06-21 16:18:01.808: E/AndroidRuntime(28063):    at com.uwbapp.KnseActivity$Title.doInBackground(KnseActivity.java:1)
06-21 16:18:01.808: E/AndroidRuntime(28063):    at android.os.AsyncTask$2.call(AsyncTask.java:288)
06-21 16:18:01.808: E/AndroidRuntime(28063):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
06-21 16:18:01.808: E/AndroidRuntime(28063):    ... 4 more
mzfx
  • 73
  • 1
  • 4
  • 11

2 Answers2

3

There are various ways to extract data using jsoup. Check http://jsoup.org/cookbook/extracting-data/selector-syntax.

In your case to get the text and image sources you could do like

Document doc = Jsoup.connect(url).get();
for(Element div : doc.select("div")){
    System.out.println(div.text());
    for(Element img : div.select("img")){
        System.out.println(img.attr("src"));
    }
}
Syam S
  • 8,421
  • 1
  • 26
  • 36
0

This is the part of my html code

<pre style="word-wrap: break-word; white-space: pre-wrap;">90</pre>

I am new in jsoup, so I would be grateful if you write me a code, just for parsing the text to the android activity.

hdihd9162
  • 1
  • 2