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

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

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

Некорректная работа jsoup на Android - Android

08.11.2015, 16:31. Просмотров 212. Ответов 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 2.* Android
Android Работа с графикой в Android
Работа с календарем в Android Android
Некорректная работа SimpleDateFormat Android
Android Работа с Word в Android
Работа с данными Android приложение Android
Android Курсовая работа по Android
Работа с VideoView в android studio Android
Работа с процессами Android Android
Работа с БД android Android
Непонятная ошибка в Android Studio, парсинг, jsoup Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mikalai
254 / 230 / 93
Регистрация: 11.01.2015
Сообщений: 649
08.11.2015, 16:55     Некорректная работа jsoup на Android #2
flabberok, может на сайте как-то подсекают, что ты с мобилы, и шлют мобильную версию. Я хз какие headers Jsoup шлёт при запросах. ))
Паблито
2014 / 1756 / 546
Регистрация: 12.05.2014
Сообщений: 6,222
Завершенные тесты: 1
08.11.2015, 17:02     Некорректная работа jsoup на Android #3
можно попробовать добавить в запрос userAgent()
тут можно посмотреть строку и скопировать в код
flabberok
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 3
08.11.2015, 17:14  [ТС]     Некорректная работа jsoup на Android #4
большое спасибо! действительно, была мобильная версия, а я уже всю голову сломал )))
Yandex
Объявления
08.11.2015, 17:14     Некорректная работа jsoup на Android
Ответ Создать тему
Опции темы

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