Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Как в Java вычитать HTML код страницы с нужным пар


Автор: Solenoid2200 12.4.2018, 18:58
Пример: 
Вычитать 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();

    }

}




Автор: _zorn_ 12.4.2018, 22:51
Так ты сначала парсер подключи. А потом еще м типами разберись. Ну а так все просто  smile 

Автор: Solenoid2200 13.4.2018, 17:24
Вариант с парсером есть. Но проблема как мне кажется в другом.

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

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

Это единственно возможный способ или всё таки можно как-то сразу первым же запросом с параметрами получить требуемые данные? 

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

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)