Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 07.09.2012
Сообщений: 113
1

Вытягивание json,xml элементов с сторонних ресурсов

21.01.2017, 21:29. Показов 808. Ответов 18
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дали задание, получить список товаров с другого сайта и тд. (главный вопрос как получить эти объекты если API не дает прямой ссылки на json или xml) .

Использовать сказали
Spring Boot + REST( парсеры на любой выбор) (для меня конечно лучше jackson)

суть в чем, есть сайт

https://www.spinlister.com/search/ (не реклама)
если зайти во вкладку network и отсортировать его по XHR (Chrome), там будет json массив с элементами, как мне его получить не имея прямого пути к файлу.

Я когда-то работал с Yahoo финансы и там ссылка была прям на сам файл, так как они апи предоставляют)
А как быть с теми кто этого не делает.

Буду благодарен за любую помощь.

Кода как такового еще нету, так как не могу словить то что нужно, что бы что-то сделать.

Включил спринг бут и создал там для себя обычный main

Добавлено через 21 минуту
StackOverflow выдал такой примерчик, я запустил, но выдал ошибку 500
До этого была 403))

RestTemplate юзается

Java
1
2
3
4
5
6
7
8
RestTemplate rt = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
        headers.add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36");
        HttpEntity<String> entity = new HttpEntity<String>("parameters", headers);
        String url = "https://www.spinlister.com/search/";
        ResponseEntity<String> res = rt.exchange(url, HttpMethod.GET, entity, String.class);
        System.out.println(res);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.01.2017, 21:29
Ответы с готовыми решениями:

Вытягивание JSON
доброго времени суток. Подскажите, пожалуйста, как можно вытянуть JSON строку из PHP сайта с...

Парсинг или просто вытягивание элемента из XML
Заранее хочу сказать ссылки на ту или иную инфу не писать и писать только по теме. Есть такой...

Вставка видео со сторонних ресурсов на DLE
Всем привет Как вставить видео с другого сайта. Например есть исходный код &lt;iframe...

Оптимизация картинок, которые отображаются со сторонних ресурсов
Здравствуйте. Есть интернет-магазин на небольшом хостинге, и для быстроты заполнения данных, и...

18
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
21.01.2017, 22:03 2
Vestars, если есть json массив, значит есть и урл который его приносит. К нему и делайте запрос.
0
1 / 1 / 1
Регистрация: 07.09.2012
Сообщений: 113
21.01.2017, 22:05  [ТС] 3
KEKCoGEN, подскажите где взять этот урл.
Направьте меня)
0
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
21.01.2017, 22:13 4
Vestars, там же. В консоли хрома (F12)
0
1 / 1 / 1
Регистрация: 07.09.2012
Сообщений: 113
21.01.2017, 22:20  [ТС] 5
KEKCoGEN, где искать я понял, я сейчас перепроверю, но я вроде искал и его там не было

Добавлено через 5 минут
KEKCoGEN, Нету, можете поделиться информацией, как именно вытянуть этот урл с json, я его не нашел во всем списке
0
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
21.01.2017, 22:26 6
Vestars, я с телефона пишу поэтому не могу сейчас. Покажите скриншот консоли ф12
0
1 / 1 / 1
Регистрация: 07.09.2012
Сообщений: 113
21.01.2017, 22:38  [ТС] 7
KEKCoGEN, Если я правильно понял вас.

В самом сорсе там тоже нету, json структура существует только в нетворке
Миниатюры
Вытягивание json,xml элементов с сторонних ресурсов  
0
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
21.01.2017, 22:50 8
Vestars, ну вот search вам и дает этот джсон
0
1 / 1 / 1
Регистрация: 07.09.2012
Сообщений: 113
21.01.2017, 22:52  [ТС] 9
KEKCoGEN, ну я его и ставлю как юрл извлечения json но он не возвращает его
сначала ошибка была 403 потом что-то по шаманил и стала 500
0
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
21.01.2017, 23:19 10
Vestars, смотрите вкладку headers там есть хедеры которые надо слать. Так же метод там POST
0
1 / 1 / 1
Регистрация: 07.09.2012
Сообщений: 113
21.01.2017, 23:20  [ТС] 11
KEKCoGEN, Request URL:
Request Method:POST
Status Code:200
Remote Address:104.25.16.12:443

надо такую шапку сделать что бы получить json?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
21.01.2017, 23:28 12
Во-первых там на этот search отправляется форма, например;
во-вторых там куча заголовков, которые могут проверяться сервером;
в-третьих еще куки есть.
0
1 / 1 / 1
Регистрация: 07.09.2012
Сообщений: 113
21.01.2017, 23:32  [ТС] 13
xoraxax, хотите сказать хрен получишь его да?)
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
21.01.2017, 23:40 14
Vestars, хочу сказать ставь fiddler и разбирай запросы
0
1 / 1 / 1
Регистрация: 07.09.2012
Сообщений: 113
21.01.2017, 23:41  [ТС] 15
xoraxax, это дебагер запросов?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
21.01.2017, 23:44 16
Vestars, поставь и посмотри
0
1 / 1 / 1
Регистрация: 07.09.2012
Сообщений: 113
31.01.2017, 01:23  [ТС] 17
KEKCoGEN, привет снова)

Вопрос по теме. Данный запрос не выдает ошибок, но вместо json он возвращает мне html документ.
Что должно быть в хедере что бы получить именно json?


Java
1
2
3
4
5
6
7
8
9
RestTemplate restTemplate = new RestTemplate();
 
        HttpHeaders headers = new HttpHeaders();
        headers.set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36");
        headers.set("Content-Type", "application/json; charset=utf-8");
        HttpEntity<String> entity = new HttpEntity<String>("", headers);
 
        ResponseEntity<String> result = restTemplate.exchange("https://www.spinlister.com/search/", HttpMethod.GET, entity, String.class);
        System.out.println(result);
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
31.01.2017, 08:16 18
Vestars, во первых там POST, во вторых тело запроса надо отправить
0
Эксперт Java
2398 / 2223 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
31.01.2017, 09:24 19
Vestars, в запросе должно быть точно тоже самое что в фидлере если вы его установили.
0
31.01.2017, 09:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.01.2017, 09:24
Помогаю со студенческими работами здесь

Ссылки со сторонних ресурсов открываются в новых окнах
Здравствуйте! у меня браузет Мозила ФайерФокс, в настройках выделена опция &quot;Вместо новых окон...

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

Использование "сторонних" файлов ресурсов в коде
Доброго времени суток. Я столкнулся с проблемой. Мне надо сделать многоязычную платформу для...

Возможно ли чтение XML файла с C++ без использования сторонних библиотек?
Если нет, то какие библиотеки лучше?


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru