Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
flabberok
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 3
#1

Некорректная работа jsoup на Android - Программирование Android

08.11.2015, 16:31. Просмотров 244. Ответов 3

Здравствуйте! Подскажите, с чем может быть связана следующая проблема. Есть парсер html с использованием jsoup. Отрабатывает корректно, получаю всё необходимое. Вот код:

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
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
 
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
 
 
public class Main {
    public static void main(String[] args) {
 
        Document doc;
        
        try {
            
            doc = Jsoup.connect("http://myfin.by/bank/currency/minsk").get();            
            //пробегаю по всем id
            for (int i = 0; i < 50; i++) {
                String idHeadBank = "#vg_b_" + i;
                Elements tempHeadBank = doc.select(idHeadBank);
                System.out.println("id = " + idHeadBank + ", размер = " + tempHeadBank.size());
                //далее, для ненулевых элементов провожу необходимые действия              
            }
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("Невозможно скачать данные с сайта!");
        }        
    }
}
Перенес этот код на android. Библиотеку добавлял и через jar файл и через maven зависимость. В итоге получаю правильный <title> документа, но все остальное не совпадает с консольным парсером. Например при поиске по id, как в коде выше, на андроид все элементы получаются нулевые. Код:

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
package com.example.knn.explistbanks;
 
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.ExpandableListView;
 
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ExecutionException;
 
public class MainActivity extends Activity {
    /**
     * Called when the activity is first created.
     */
    String my_log = "my_log";
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        String url = "http://myfin.by/bank/currency/minsk";       
 
        LoadData ld = new LoadData();
        ld.execute(url);
    }
}
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
package com.example.knn.explistbanks;
 
import android.os.AsyncTask;
import android.util.Log;
 
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
 
import java.io.IOException;
 
/**
 * Created by knn on 06.11.2015.
 */
public class LoadData extends AsyncTask<String, Void, Void> {
    String my_log = "my_log";
 
    @Override
    protected Void doInBackground(String... params) {
 
        Document doc;
        
        try {
            Log.d(my_log, params[0]);
            doc = Jsoup.connect(params[0]).get();
            
            Log.d(my_log, doc.title());
 
            for (int i = 0; i < 50; i++) {
                String idHeadBank = "#vg_b_" + i;
                Elements tempHeadBank = doc.select(idHeadBank);
                Log.d(my_log, "id = " + idHeadBank + ", размер = " + tempHeadBank.size());               
            }
        } catch (IOException e) {
            System.out.println("Невозможно скачать данные с сайта!");
            e.printStackTrace();
        }
        return null;
    }
}
Подскажите, пожалуйста, с чем это может быть связано? Спасибо!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2015, 16:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Некорректная работа jsoup на Android (Программирование Android):

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

Некорректная работа SimpleDateFormat - Программирование Android
Имеем дату в виде строки и желаемый формат даты. DateFormat format = new SimpleDateFormat(&quot;dd.MM.yyyy&quot;); String...

Работа с БД android - Программирование Android
Хочу сделать объемный проект, в нем будет много запросов к БД. Это будет мой первый серьезный андроид-проект! Можно сказать, что все...

Работа с процессами Android - Программирование Android
Привет друзья нуждаюсь в вашей помощи. Задача в общем такая есть приложение которое работает без Activity в фоне, задача у него такая...

Курсовая работа по Android - Программирование Android
Может у кого-то есть записка к курсовому на андроид?

Работа с календарем в Android - Программирование Android
Здравствуйте. Сразу к вопросам: 1) Как подключить календарь. 2) Как брать допустим число и месяц и выводить допустим в TextView.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Mikalai
256 / 232 / 93
Регистрация: 11.01.2015
Сообщений: 655
08.11.2015, 16:55 #2
flabberok, может на сайте как-то подсекают, что ты с мобилы, и шлют мобильную версию. Я хз какие headers Jsoup шлёт при запросах. ))
Pablito
2474 / 1919 / 596
Регистрация: 12.05.2014
Сообщений: 6,747
Завершенные тесты: 1
08.11.2015, 17:02 #3
можно попробовать добавить в запрос userAgent()
тут можно посмотреть строку и скопировать в код
flabberok
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 3
08.11.2015, 17:14  [ТС] #4
большое спасибо! действительно, была мобильная версия, а я уже всю голову сломал )))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.11.2015, 17:14
Привет! Вот еще темы с ответами:

Работа с Word в Android - Программирование Android
Подскажите где можно почитать тему по работе программно с Word файлами в Android, с Excel разобрался, но вот с Word не могу найти...

Работа с графикой в Android - Программирование Android
есть такой код: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ...

Работа с камерой в Android 2.* - Программирование Android
Нужно заставить приложение выводить картинку с камеры на экран (превьюшка). Вроде проще простого, но не работает: package...

Работа с данными Android приложение - Программирование Android
Я создаю приложение по исторической тематике . И появилась проблема . Я создал активити с тремя кнопками : Основные события ,даты...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
08.11.2015, 17:14
Ответ Создать тему
Опции темы

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