Задать вопрос
@SislaOpir

Как правильно запарсить несколько страниц с помощью Jsoup?

Всем добрый день. Учусь программировать под Андроид и возникла проблема. Собственно, есть EditText, в который ввожу название футбольной команды, далее эта команда ищется в гугле и со страницы поиска считывается первая ссылка, которая заносится в строковою переменную. И при попытке считать и запарсить данные,находящиеся по ссылке в строковой переменной, происходит ошибка. Если же парсить только одну страницу, то ошибок не возникает. Объясните пожалуйста, каким образом следует парсить несколько страниц, чтобы не возникало ошибок. Заранее спасибо.

package opara.com.jsoupexample;

import android.app.Activity;
import android.os.AsyncTask;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import org.jsoup.Jsoup;
import org.jsoup.helper.Validate;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.jsoup.nodes.Element;

import java.io.IOException;


public class MainActivity extends Activity {

    private Button button1;
    private TextView textView1;
    private EditText editText;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        button1 = (Button) findViewById(R.id.button1);
        textView1 = (TextView) findViewById(R.id.textView1);
        editText = (EditText) findViewById(R.id.editText);
    }


    public void ClickMe(View v) {

        MyTask mt = new MyTask();
        mt.execute();

    }


    class MyTask extends AsyncTask<Void, Void, Void> {

        String title;
        String urltext;
        String team;
        String title1;

        @Override
        protected void onPreExecute() {

            team = editText.getText().toString();


        }

        @Override
        protected Void doInBackground(Void... params) {

            Document doc = null;
            Document doc1 = null;

            try {

                doc = Jsoup.connect("https://www.google.com.ua/search?rlz=1C1AVNE_enUA709UA711&ei=3DoAWs_ICY6WsAeIibaIBw&q=myscore+результат+матча+команды+" + team + "+футбол&oq=myscore+результат+матча+команды+" + team + "+футбол&gs_l=psy-ab.3..35i39k1.4221.5963.0.6244.8.8.0.0.0.0.303.1096.0j2j2j1.5.0....0...1.1.64.psy-ab..3.3.595....0.84mRWpFt5ic").get();
            } catch (IOException e) {
                e.printStackTrace();
            }


            if (doc != null) {

                Elements text = doc.select(".s");
                title = text.text();
                urltext = title.substring(+0, title.indexOf("К"));
                try {

                    doc1 = Jsoup.connect(urltext).get();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                if (doc != null) {
                    title1 = doc.title();
                } else
                    title1 = "Ошибка";

            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            textView1.setText(title1);
        }
    }
}
  • Вопрос задан
  • 466 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы