Дані та Інтернет

Для роботи з інформацією в мережі потрібно підключати відповідні модулі. Так, модуль socket дозволяє працювати з ІР-адресами та портами; urllib.request опрацьовує адреси веб-ресурсів, а модуль webbrowser забезпечує взаємодію із браузером.


IP та браузер

Приклад 1. Отримати ІР-адресу сервера сайту

При роботі з веб-ресурсами часто виникають помилки - через помилкові написання адрес, чи недоступність у певний момент бажаного сервера. Тому варто застосовувати перевірку винятків, яка полягає у тому, що в програмі передбачено дії для невдалого виконання операцій:

спробувати
    надрукувати
якщо не вдалось
    надрукувати помилку

Приклад 2. Обробка винятків

Приклад 3. Отримати файл з Інтернету (надрукувати на екрані його вміст)

Приклад 4. Скачати файл

Зверніть увагу, що дані отримуються у двійковому форматі типу bytes. Якщо файл зберегти та відкрити у режимі "r", дані можна зчитувати у звичайному текстовому режимі.

Приклад 5. Запустити браузер

Приклад 6. Відкрити сторінку сайту в браузері. Якщо такої сторінки немає, вивести повідомлення про помилку


Запит GET

Запити до сторінок поділяються на два типи: GET та POST. Метод get застосовується для передачі невеликих текстових даних та пошуку на сайті. В такому разі зазвичай у рядку адреси відбуваються зміни і можна побачити доданий знак питання з подальшими символами: http://www.google.com.ua/?gws_rd=ssl#q=python (у даному випадку пошуковим словом є python). Метод post використовується для пересилки файлів, коментарів, додавання повідомлень на форумах тощо. Адреса у відповідному рядку браузера не змінюється, запит передається у більш захищеному режимі. У Python дуже просто реалізовувати запити get .

Приклад 7. Внести дані у запит та відкрити браузер з результатами пошуку

Приклад 8. Пошук у Вікіпедії: статті, назва яких починаються на слово india. Результат зберігається у файлі


Прикладhttp://api.open-notify.org/astros.json - інформація про міжнародну космічну станцію (зокрема кількість та перелік космонавтів на орбіті)

Коли станція пройде над певною локацією: http://api.open-notify.org/iss-pass.json?lat=51.51&lon=-0.13

Щоб перевести число з цілого у дату, можна скористатись модулем datetime:

import datetime

дата=datetime.datetime.fromtimestamp( число )



При роботі з онлайновими даними, слід пам'ятати, що велика кількість запитів на сервер з одного комп'ютера може класифікуватися як DDoS атака:

   

Завдання. Дізнавшись ІР адресу сайту, скористайтесь сервісами з розділу Геокодування https://github.com/toddmotto/public-apis#geocoding, щоб дізнатись місце розташування сервера з цим сайтом (Наприклад, https://ip2country.info/)

Завдання. З'ясуйте погоду в Києві, Лондоні, Нью-Йорку та Лос-Анжелесі https://github.com/toddmotto/public-apis#weather (Наприклад, https://www.metaweather.com/api/)

Завдання. З'ясуйте перелік свят в Україні та США, і які з вихідних є спільними https://date.nager.at/



Збірка відкритих АРІ https://github.com/toddmotto/public-apis

Web Scrapping с помощью python https://habrahabr.ru/post/280238/



Дані CERN

http://opendata.cern.ch/

https://github.com/cms-opendata-education

Набори відкритих даних

https://www.kaggle.com/datasets

Остання зміна: вівторок 3 березня 2020 5:51