Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
rockstarone
13 / 13 / 9
Регистрация: 23.10.2014
Сообщений: 184
1

Jsoup парсинг сайта

26.06.2016, 10:47. Просмотров 2332. Ответов 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)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2016, 10:47
Ответы с готовыми решениями:

Jsoup Парсинг сайта в таблицу (GridView)!
Здравствуйте! Подскажите новичку почему этот код на ListView работает, а на GridView приложение...

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

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

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

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

8
Pablito
2863 / 2275 / 768
Регистрация: 12.05.2014
Сообщений: 7,978
Завершенные тесты: 1
26.06.2016, 12:42 2
по адресу который в коде, открывается
Jsoup парсинг сайта

что там должно парсить?
1
rockstarone
13 / 13 / 9
Регистрация: 23.10.2014
Сообщений: 184
26.06.2016, 12:58  [ТС] 3
Там же если ниже пролистать идет список книг
0
Pablito
2863 / 2275 / 768
Регистрация: 12.05.2014
Сообщений: 7,978
Завершенные тесты: 1
26.06.2016, 14:30 4
Лучший ответ Сообщение было отмечено rockstarone как решение

Решение

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
26.06.2016, 14:30
rockstarone
13 / 13 / 9
Регистрация: 23.10.2014
Сообщений: 184
26.06.2016, 21:51  [ТС] 5
Паблито, Да, действительно так работает. Но 3 книги. Это из-за того что он считает что мы с мобильной версии сайта. А как сказать ему что мы с пк?

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

Добавлено через 5 часов 33 минуты
Паблито, все . разобрался. спасибо большое. а как мне теперь картинку в imageview засунуть, подскажи пожалуйста?
0
Pablito
2863 / 2275 / 768
Регистрация: 12.05.2014
Сообщений: 7,978
Завершенные тесты: 1
27.06.2016, 11:00 6
Цитата Сообщение от rockstarone Посмотреть сообщение
а как мне теперь картинку в imageview засунуть,
ImageView
1
rockstarone
13 / 13 / 9
Регистрация: 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
2863 / 2275 / 768
Регистрация: 12.05.2014
Сообщений: 7,978
Завершенные тесты: 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 / 9
Регистрация: 23.10.2014
Сообщений: 184
27.06.2016, 14:36  [ТС] 9
Паблито, спасибо большое!
0
27.06.2016, 14:36
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2016, 14:36

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

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

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


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

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

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