Форум программистов, компьютерный форум, киберфорум
brain-4-me
Войти
Регистрация
Восстановить пароль

Парсинг погоды

Запись от brain-4-me размещена 25.03.2015 в 07:10
Показов 7370 Комментарии 4

Здравствуйте все) Продолжаю изучать php и тут наткнулся на интересное задание, сделать поле куда вводится город и кнопочка Инфо. Посылается запрос на сервер и возвращается в виде ответа табличка с текущей температурой и прогнозом погоды. Немного пошарившить в гугл решил парсить с яндекс погоды. Взял за исходник файл с названием и ID городов тут https://pogoda.yandex.ru/static/cities.xml. Вот, собственно что получилось:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php header("Content-Type: text/html; charset=utf-8");?>
<!DOCTYPE HTML>
<html>
<head>
  <title>погода в любом городе</title>
  <meta charset="utf-8" />
</head>
<body>
<center><h3> Наберите название любого города</h3></center>
   <form method="post">
    <input type="text" name="city">
    <input type="submit" value="Информация!" name="submit">
    <?php 
    if (isset($_POST['submit'])){
      $search = $_POST['city'];
      $data_file = 'https://pogoda.yandex.ru/static/cities.xml'; // загружаем список городов
 $xml = simplexml_load_file($data_file);                            // читаем в массив
        $city = $xml->xpath("//city[text()='${search}']/@id"); //ищем по названию города его ID
        $country = $xml->xpath("//city[text()='${search}']/@country"); // ищем по названию страну
    ?>
  </form>
  <?php $city_id=$city['0']->id;
        $country=$country['0']->country;
    if ($city_id == TRUE){
   
    $weather_file= 'http://export.yandex.ru/weather-ng/forecasts/'.$city_id.'.xml'; //подставляем ID для запроса погоды
    $xml_weath=simplexml_load_file($weather_file);
      $now=$xml_weath->fact->temperature;                                                   //парсим текущую температуру
      $from=$xml_weath->day->day_part->temperature_from;                          // парсим проноз температуры от
      $to=$xml_weath->day->day_part->temperature_to;                                  // парсим прогноз температуры до
    }else{
      die("<center><h2>Вы ввели неправильное название города, или с маленькой буквы! Например Екатеринбург</h2></center>");                                                                // убиваем процесс если город был введен неверно
    }
}
  ?>
<div>
  <table border=1px>
    <tr>
      <th>Ваша Страна</th>
      <th>Ваш Город</th>
      <th>Текущая температура</th>
      <th>Проноз</th>
    </tr>
    <tr>
      <td><?php echo $country ?></td>        //выводим страну
      <td><?php echo $search ?></td>          // Город
      <td><?php echo $now ?></td>             // текущую температуру
      <td><?php echo "от $from до $to"?></td>    // прогноз
    </tr>
  </table>
</div>
</body>
</html>
будут вопросы спрашивайте, дошел до всего сам перелопатив дофига интернетов и книг) отвечу на любые, еще планирую добавить население города и валюту страны) как сделаю отпишусь

посмотреть можно тут тык
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 4
Комментарии
  1. Старый комментарий
    Вот хороший сервер с открытым API для погоды: http://www.worldweatheronline.com/api/
    Запись от 8Observer8 размещена 25.03.2015 в 10:24 8Observer8 вне форума
  2. Старый комментарий
    Аватар для brain-4-me
    Цитата Сообщение от 8Observer8
    Вот хороший сервер с открытым API для погоды: http://www.worldweatheronline.com/api/
    спасибо) погляжу) я только начинающий так что....
    Запись от brain-4-me размещена 25.03.2015 в 10:34 brain-4-me вне форума
  3. Старый комментарий
    я только начинающий так что....
    Там на панели слева много разных API. Я использовал "Local Weather API"

    Перейдите по ссылке

    Внизу страницы нажмите кнопку "FREE SIGNUP" для регистрации

    Вы попадёте на страницу, где нужно скопировать "key" - это длиное хэш-число. В меню сверху выберите "API explorer" -> "Free API" -> А на этой станице нужно вставить в поле "API Key" ваш скопированный "key"

    Теперь нажмите кнопку "GET", потом кнопку "Try it!" и вы получите ответ в виде Json (там можно получать ответы в разных форматах: JSON, XML, CSV, TAB)

    А вот здесь написано, как с помощью PHP работать Weather API
    Запись от 8Observer8 размещена 25.03.2015 в 12:30 8Observer8 вне форума
  4. Старый комментарий
    Аватар для brain-4-me
    Цитата Сообщение от 8Observer8
    Там на панели слева много разных API. Я использовал "Local Weather API"
    да я почитал все понял (благо хорошо знаю английский) ну у меня по тестировочному заданию обязательный парсинг Яндекс погоды)

    а может вы подскажите как спарсить можно из вики население данного города, и валюту?) (в большинстве будут использоваться только столицы)
    Запись от brain-4-me размещена 25.03.2015 в 13:37 brain-4-me вне форума
 
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru