Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как в Java вычитать HTML код страницы с нужным пар 
:(
    Опции темы
Solenoid2200
Дата 12.4.2018, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.2.2018

Репутация: нет
Всего: нет



Пример: 
Вычитать HTML-код страницы 
https://www.globalpetrolprices.com/gasoline_prices/
для цены в EUR

При открытии сайта по умолчанию цена задана в U.S. Dollar и парсится без проблем:
А как быть для цены в EUR? 
Это вообще возможно?

Код

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;

public class FuelPreisService {

    public static void main(String[] args) throws Exception {

        String siteAddress = "https://www.globalpetrolprices.com/gasoline_prices/?literGalon=1&currency=EUR";
        String httpContent = getContentOfHTTPPage(siteAddress);
        List<String> preisFuel = getPreisFuel(httpContent);
        System.out.println(preisFuel);

    }


    private static List<String> getPreisFuel(String httpContent) throws Exception {

        List<String> result = new ArrayList<String>();

        String[] array1 = httpContent.split("data=");
        String st1 = array1[1];

        String[] array2 = st1.split("&titles");
        String prices = array2[0];

        String[] array3 = prices.split(",");
        for (int i = 0; i < array3.length; i++) {
        result.add((array3[i]));
        }

        return result;

    }


    private static String getContentOfHTTPPage(String pageAddress) throws Exception {

        StringBuilder sb = new StringBuilder();
        URL pageURL = new URL(pageAddress);
        URLConnection uc = pageURL.openConnection();
        BufferedReader br = new BufferedReader(new InputStreamReader(uc.getInputStream()));
        try {
            String inputLine;
            while ((inputLine = br.readLine()) != null) {
                sb.append(inputLine);
            }
        } finally {
            br.close();
        }

        return sb.toString();

    }

}




PM MAIL   Вверх
_zorn_
Дата 12.4.2018, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1077
Регистрация: 21.8.2007

Репутация: нет
Всего: 12



Так ты сначала парсер подключи. А потом еще м типами разберись. Ну а так все просто  smile 
PM MAIL   Вверх
Solenoid2200
Дата 13.4.2018, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.2.2018

Репутация: нет
Всего: нет



Вариант с парсером есть. Но проблема как мне кажется в другом.

Добавлено через 20 секунд
В общем алгоритм действий представляется примерно таким:

1. Открыть соединение HttpURLConnection
2. Записать параметры в соединение после того, как соединение открыто
3. Получить Moved Temporarily на нужную страницу
4. Получить куку из заголовка
5. Отправить запрос с кукой на новую страницу

Это единственно возможный способ или всё таки можно как-то сразу первым же запросом с параметрами получить требуемые данные? 
PM MAIL   Вверх
LSD
Дата 16.4.2018, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15708
Регистрация: 24.3.2004

Репутация: 209
Всего: 537



Цитата(Solenoid2200 @  13.4.2018,  18:24 Найти цитируемый пост)
Это единственно возможный способ или всё таки можно как-то сразу первым же запросом с параметрами получить требуемые данные?

Это зависит от сервера. Если сервер может сразу отдать нужную страницу, без редиректов и кукисов, то можно конечно сразу читать эту страницу. Если обязательно требуется редирект и кука, то что тут еще можно сделать.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1223 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.