На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
  
> Как в Java вычитать HTML код страницы с нужным параметром в теге select ?
    Пример:
    Вычитать HTML-код страницы
    https://www.globalpetrolprices.com/gasoline_prices/
    для цены в EUR

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

    ExpandedWrap disabled
      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();
       
          }
       
      }
      В общем алгоритм действий представляется примерно таким:

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

      Это единственно возможный способ или всё таки можно как-то сразу первым же запросом с параметрами получить требуемые данные?
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0191 ]   [ 15 queries used ]   [ Generated: 28.03.24, 13:13 GMT ]