Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
OT_VINTA
116 / 93 / 12
Регистрация: 13.02.2013
Сообщений: 274
1

Ошибка приложения (парсинг jsoup)

20.03.2013, 20:52. Просмотров 3230. Ответов 8
Метки нет (Все метки)

Вот есть такой код (делал по этому примеру )

Java
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
31
32
33
34
package com.example.parse;
 
 
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
 
public class FullscreenActivity extends Activity {
    /** Called when the activity is first created. */
    
    
    
    @SuppressLint("SetJavaScriptEnabled")
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_fullscreen);
                
        final TextView tvInfo = (TextView)findViewById(R.id.textView1);
        Document doc = null;
        try {
            doc = Jsoup.connect("http://otvinta-f1.narod.ru/").get();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        String title = doc.title();
        tvInfo.setText(title); 
            };
    }
В теории всё должно работать, но при запуске выдаёт ошибку.
Что я сделал не так?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2013, 20:52
Ответы с готовыми решениями:

Непонятная ошибка в Android Studio, парсинг, jsoup
Прошу помощи, ошибка, возможно будет банальной, т.к. это мое первое приложение...

Парсинг Jsoup
Парсю сайт с помощью Jsoup Есть страница с новостями с URL в виде: Новости за...

Парсинг JSOUP
Всем доброго времени суток, собственно такой вопрос. Хочу спарсить сайт с...

JSOUP парсинг
Код парсит в textView1 с сайта class="30" Как переписать/дописать код, чтоб он...

Парсинг на jsoup
Добрый всем день! Заминка такая, уже весь гугл перелопатил, синих ссылок в...

8
dr_yand
157 / 138 / 15
Регистрация: 13.03.2013
Сообщений: 321
Записей в блоге: 3
20.03.2013, 22:09 2
А с какой ошибкой выпадает?
0
OT_VINTA
116 / 93 / 12
Регистрация: 13.02.2013
Сообщений: 274
20.03.2013, 22:22  [ТС] 3
Цитата Сообщение от dr_yand Посмотреть сообщение
А с какой ошибкой выпадает?
http://s2.ipicture.ru/uploads/20130320/dHMcixzq.png
0
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
21.03.2013, 11:33 4
Я оставлю старую версию статьи здесь. Если вы пишете программы под старые устройства, то всё остаётся без изменений. Примеры под новые устройства находятся в закрытой зоне 4 месяца.
Я надеюсь ты учел это? Под новые устройства соединения нужно делать в другом потоке используя например AsyncTask. И вообще рекомендация гугла сетевые операции НЕ делать в UI thread.

.NetworkOnMainThreadException как раз и намекает тебе об этом.
http://developer.android.com/referen...Exception.html
0
OT_VINTA
116 / 93 / 12
Регистрация: 13.02.2013
Сообщений: 274
21.03.2013, 15:18  [ТС] 5
Цитата Сообщение от c4sp3r Посмотреть сообщение
Я надеюсь ты учел это? Под новые устройства соединения нужно делать в другом потоке используя например AsyncTask. И вообще рекомендация гугла сетевые операции НЕ делать в UI thread.

.NetworkOnMainThreadException как раз и намекает тебе об этом.
http://developer.android.com/referen...Exception.html

Можете показать мне готовый рабочий пример?
Я просто только начинаю изучать Android програмирование, и пока не могу понять как что сделать.

До этого я имел дело только с html css и немного с javascript и php.
0
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
21.03.2013, 16:41 6
OT_VINTA, начни с этого урока
http://startandroid.ru/ru/uroki/vse-...yj-primer.html

Java
1
2
3
4
5
6
7
8
9
@Override
    protected Void doInBackground(Void... params) {
      try {
        TimeUnit.SECONDS.sleep(2); // В его уроках эмитирует например сетевые операции
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      return null;
    }
Заместо этого вставляй свой код только не тупо копировать, вставить а прочитай уроки сначала по AsyncTask!

Добавлено через 26 минут
Вот тебе готовый пример:
Java
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package com.example.parserexample;
 
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
 
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;
 
public class MainActivity extends Activity {
 
    private TextView textView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        textView = (TextView) findViewById(R.id.textView);
        
        new MyParser().execute("http://otvinta-f1.narod.ru/");
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
    private class MyParser extends AsyncTask<String, Void, String> {
 
        @Override
        protected String doInBackground(String... links) {  
            Document doc = null;
            try {
                doc = Jsoup.connect(links[0]).get();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return doc.title();
        }
 
        @Override
        protected void onPostExecute(String result) {
            textView.setText(result);
        }
        
    }
}
Только не забудь в манифест добавить:
XML
1
<uses-permission android:name="android.permission.INTERNET" />
1
OT_VINTA
116 / 93 / 12
Регистрация: 13.02.2013
Сообщений: 274
21.03.2013, 17:53  [ТС] 7
Цитата Сообщение от c4sp3r Посмотреть сообщение
OT_VINTA, начни с этого урока
http://startandroid.ru/ru/uroki/vse-...yj-primer.html

Java
1
2
3
4
5
6
7
8
9
@Override
    protected Void doInBackground(Void... params) {
      try {
        TimeUnit.SECONDS.sleep(2); // В его уроках эмитирует например сетевые операции
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
      return null;
    }
Заместо этого вставляй свой код только не тупо копировать, вставить а прочитай уроки сначала по AsyncTask!

Добавлено через 26 минут
Вот тебе готовый пример:
Java
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package com.example.parserexample;
 
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
 
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;
 
public class MainActivity extends Activity {
 
    private TextView textView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        textView = (TextView) findViewById(R.id.textView);
        
        new MyParser().execute("http://otvinta-f1.narod.ru/");
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
    
    private class MyParser extends AsyncTask<String, Void, String> {
 
        @Override
        protected String doInBackground(String... links) {  
            Document doc = null;
            try {
                doc = Jsoup.connect(links[0]).get();
            } catch (Exception e) {
                e.printStackTrace();
            }
            return doc.title();
        }
 
        @Override
        protected void onPostExecute(String result) {
            textView.setText(result);
        }
        
    }
}
Только не забудь в манифест добавить:
XML
1
<uses-permission android:name="android.permission.INTERNET" />
Спасибо огромное!!!

Теперь буду мучиться как отдельные части по ид или классу вытащить :-)
0
c4sp3r
0x5B4C322291BD52AE
94 / 94 / 0
Регистрация: 04.03.2013
Сообщений: 295
21.03.2013, 18:19 8
Если html что ты тут давал

это вытащит все новости
Java
1
2
final Elements news = doc.select("div.news");
String myNews = news.text();
будет
Код
содержание новости 0 содержание новости 1 содержание новости 2 содержание новости 3 ...
1
ProGraf
0 / 0 / 0
Регистрация: 27.06.2015
Сообщений: 96
16.04.2016, 23:36 9
c4sp3r, спасибо!
0
16.04.2016, 23:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2016, 23:36

Jsoup парсинг сайта
Помогите пожалуйста. Пытаюсь получить названия книг с сайта livelib. Но он...

jsoup, парсинг html
А почему не работает такой простой код? Парсинг из инета пока не трогаем......

Парсинг с Jsoup и заполнение в таблицу
Доброго времени суток. Мозг выгорает, не могу разобраться как правильно парсить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru