android - Один адаптер на все варианты парсинга


0

Делаю парсинг нескольких сайтов. Для запросов использую Retrofit2

Retrofit retrofit = new Retrofit.Builder()
                .baseUrl("http://www...")
                .addConverterFactory(PageAdapter.FACTORY)
                .client(client)
                .build();

Адаптер

    class PageAdapter implements Converter<ResponseBody, Page> {
        public static final Converter.Factory FACTORY = new Converter.Factory() {

 @Override
 public Converter<ResponseBody, ?> responseBodyConverter(Type type, Annotation[] annotations, Retrofit retrofit) {
                if (type == Page.class) return new PageAdapter();
                return null;
            }
        };

        @Override
        public Page convert(ResponseBody responseBody) throws IOException {
            Document document = Jsoup.parse(responseBody.string());
            Element value = document.getElementById("m_img");
            String content = value.absUrl("src");
            return new Page(content);
        }

    }

Page

class Page {
    public String content;

    public Page(String content) {
        this.content = content;
    }
}

Как можно написать один адаптер,для всех вариантов парсинга которые отличались бы разными тегам(с одного текст,с другого урл и т.д.),то есть метод convert.(Element value)

В итоге должно получится ,примерно, так

 public void onResponse(Call<Site1> call, Response<Site1> response) {
                            Log.i("test1",response.body().content1);

                        }
...
 public void onResponse(Call<Site2> call, Response<Site2> response) {
                            Log.i("test2",response.body().content2);

                        }
Источник
  •  43
  •  0
  • 21 янв 2018 2018-01-21 22:35:14
Вам нужно инструкции по парсингу применять разные? — 22 янв 20182018-01-22 08:44:56.000000
Вроде все понятно, но непонятно. Можно поподробнее суть объяснить? — 22 янв 20182018-01-22 08:41:58.000000
@Flippy еще делаю POST запросы, отсылаю то что спарсил — 22 янв 20182018-01-22 08:32:22.000000
Напишите свой RetroJsoup :D — 22 янв 20182018-01-22 08:21:19.000000
А зачем вам вообще Retrofit если есть Jsoup =/ — 22 янв 20182018-01-22 08:20:52.000000

Ответов пока нет