Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Java > Как в Java вычитать HTML код страницы с нужным параметром в теге select ? |
Автор: Solenoid 12.04.18, 15:33 |
Пример: Вычитать HTML-код страницы https://www.globalpetrolprices.com/gasoline_prices/ для цены в EUR При открытии сайта по умолчанию цена задана в U.S. Dollar и парсится без проблем: А как быть для цены в EUR? <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> 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¤cy=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(); } } |
Автор: Solenoid 13.04.18, 14:18 |
В общем алгоритм действий представляется примерно таким: 1. Открыть соединение HttpURLConnection 2. Записать параметры в соединение после того, как соединение открыто 3. Получить Moved Temporarily на нужную страницу 4. Получить куку из заголовка 5. Отправить запрос с кукой на новую страницу Это единственно возможный способ или всё таки можно как-то сразу первым же запросом с параметрами получить требуемые данные? |