Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
rockstarone
13 / 13 / 6
Регистрация: 23.10.2014
Сообщений: 184
#1

Jsoup парсинг сайта - Программирование Android

26.06.2016, 10:47. Просмотров 1151. Ответов 8
Метки нет (Все метки)

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

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
public class NewsFragment extends Fragment {
    public Elements  title;
    public ArrayList<String> titleList = new ArrayList<String>();
    private ArrayAdapter<String> adapter;
    private ListView lv;
    private TextView tv;
    View view;
    public NewsFragment() {
        // Required empty public constructor
    }
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        view = inflater.inflate(R.layout.fragment_news, container, false);
        lv=(ListView)view.findViewById(R.id.listViewNews);
 
        adapter= new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,titleList);
        lv.setAdapter(adapter);
        new MyTask().execute();
        return view;
    }
    public class MyTask extends AsyncTask<Void, Void, Void> {
        @Override
        protected Void doInBackground(Void... voids) {
 
            try {
                Document document = Jsoup.connect("https://www.livelib.ru/selection/20233").get();
                Elements description = document.select(".tag-book-title");
 
                for(Element titleFromSite:description){
                    if(titleFromSite.text().equals(""))
                        continue;
                    titleList.add(titleFromSite.text());
                }
            }catch (IOException ex){
                ex.printStackTrace();
            }
            return null;
        }
        @Override
        protected void onPostExecute(Void aVoid) {
 
            adapter.notifyDataSetChanged();
        }
    }
Jsoup парсинг сайта
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2016, 10:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Jsoup парсинг сайта (Программирование Android):

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

JSOUP парсинг - Программирование Android
Код парсит в textView1 с сайта class=&quot;30&quot; Как переписать/дописать код, чтоб он парсил еще и в textView2 класс=&quot;31&quot; Классы 30, 31 на...

jsoup, парсинг html - Программирование Android
А почему не работает такой простой код? Парсинг из инета пока не трогаем... Код: package com.example.projecta; import...

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

Парсинг XML с помощью Jsoup - Программирование Android
Всем добрый день. Пишу андроид приложение. Использую библиотеку jsoup. Возникла проблема с парсингом xml. Есть такой кусок на...

Jsoup парсинг адерса ссылки - Программирование Android
Как с помощью библиотеки jsoup парсить адрес ссылки &lt;a class=&quot;news-one clearfix brdr-btm&quot; href=&quot;/news/3719/&quot;&gt; &lt;h2&gt;Заголовок&lt;/h2&gt; ...

8
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,066
Завершенные тесты: 1
26.06.2016, 12:42 #2
по адресу который в коде, открывается
Jsoup парсинг сайта
что там должно парсить?
1
rockstarone
13 / 13 / 6
Регистрация: 23.10.2014
Сообщений: 184
26.06.2016, 12:58  [ТС] #3
Там же если ниже пролистать идет список книг
0
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,066
Завершенные тесты: 1
26.06.2016, 14:30 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Java
1
2
3
4
5
6
7
8
        Document doc = Jsoup.connect("https://www.livelib.ru/selection/20233").execute().parse();
        Elements elements = doc.getElementsByClass("selebook-row"); // книги, 3 штуки в массиве
        for (Element e: elements) {
            String title = e.getElementsByClass("book-title").text();
            String author = e.getElementsByClass("author-name").text();
            String posterUrl = e.getElementsByClass("book-picture").select("img").attr("src");
            String description = e.getElementsByClass("book-description").text();
        }
попробовал, у меня выводит три книги
1
rockstarone
13 / 13 / 6
Регистрация: 23.10.2014
Сообщений: 184
26.06.2016, 21:51  [ТС] #5
Паблито, Да, действительно так работает. Но 3 книги. Это из-за того что он считает что мы с мобильной версии сайта. А как сказать ему что мы с пк?

Добавлено через 1 час 1 минуту
Паблито, пробую через useragent . получается что листвью вроде заполнен. могу пролистать вниз, вверх но значений нет

Добавлено через 5 часов 33 минуты
Паблито, все . разобрался. спасибо большое. а как мне теперь картинку в imageview засунуть, подскажи пожалуйста?
0
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,066
Завершенные тесты: 1
27.06.2016, 11:00 #6
Цитата Сообщение от rockstarone Посмотреть сообщение
а как мне теперь картинку в imageview засунуть,
ImageView
1
rockstarone
13 / 13 / 6
Регистрация: 23.10.2014
Сообщений: 184
27.06.2016, 11:04  [ТС] #7
Паблито, а как сам адрес получить? подскажите пожалуйста.
Java
1
    String posterUrl = e.getElementsByClass("book-picture").select("img").attr("src");
Там же нет такого класса book-picture.
0
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,066
Завершенные тесты: 1
27.06.2016, 11:54 #8
да, я забыл про useragent
Java
1
2
3
4
                        String title = e.getElementsByClass("tag-book-title").text();
                        String author = e.getElementsByClass("tag-book-author").text();
                        String posterUrl = e.getElementsByClass("block").select("img").attr("src");
                        String description = e.getElementsByClass("selebook").text();
вот так вроде работает, 25 книг находит
1
rockstarone
13 / 13 / 6
Регистрация: 23.10.2014
Сообщений: 184
27.06.2016, 14:36  [ТС] #9
Паблито, спасибо большое!
0
27.06.2016, 14:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2016, 14:36
Привет! Вот еще темы с ответами:

Ошибка приложения (парсинг jsoup) - Программирование Android
Вот есть такой код (делал по этому примеру ) package com.example.parse; import java.io.IOException; import...

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

Парсинг на JSOUP APACHE, не работает read и getInputStream - Программирование Android
Начинаю писать парс под андроид для динамического сайта. Использую JSOUP и APACHE, проблема состоит в том, что в Android Studio выделяются...

Jsoup: парсинг странички и заполнение контентом Activity - Программирование Android
Здравствуйте. В общем столкнулся с такой проблемой. Нужно отпарсить страничку через JSOUP. на страничке может быть простой текст, картинки,...


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

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

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