CodeGym /Kursy /Python SELF PL /Praca z API do web scraping

Praca z API do web scraping

Python SELF PL
Poziom 34 , Lekcja 2
Dostępny

1. Wprowadzenie do API

API, czyli Application Programming Interface (Interfejs programowania aplikacji), to zestaw zasad i mechanizmów, dzięki którym aplikacje i komponenty komunikują się ze sobą. Wyobraźcie sobie API jako kelnera w restauracji. Ty (program) składasz zamówienie (zapytanie), kelner (API) przekazuje je do kuchni (serwer), a następnie przynosi Ci danie (odpowiedź). W przypadku web scrapingu API pozwala pobierać dane bezpośrednio z serwera, bez konieczności parsowania kodu HTML.

API versus HTML-scraping

Podczas gdy uczyliśmy się web scrapingu z użyciem takich narzędzi jak BeautifulSoup, natrafialiśmy na wiele wyzwań: analiza struktury HTML, szukanie odpowiednich elementów i ich atrybutów. Z API wszystko jest trochę prostsze: otrzymujesz uporządkowane dane (zwykle w formacie JSON) bez potrzeby łamigłówki z tagami HTML. To jakby zamiast składać klocki, dostać gotową instrukcję i przygotowane części.

Zalety API:

  • Uporządkowane dane: większość API zwraca dane w uporządkowany sposób (np. JSON), co znacznie ułatwia ich przetwarzanie.
  • Stabilność: endpointy API zmieniają się rzadziej w porównaniu z kodem HTML stron internetowych.
  • Wydajność: pobieranie danych przez API jest zazwyczaj szybsze i wymaga mniej zasobów.
  • Omijanie ograniczeń: wiele stron chroni swoje dane przed scrapingiem, ale udostępnia je przez API.

Wady API:

  • Ograniczenia dostępu: dostęp do API może wymagać rejestracji, a czasami także opłaty.
  • Ograniczenia szybkości i ilości zapytań: API często nakładają limity na liczbę zapytań w jednostce czasu.
  • Konieczność poznania dokumentacji: aby skutecznie korzystać z API, trzeba poświęcić czas na zapoznanie się z jego dokumentacją.

2. Praktyczne zastosowanie API

Konfiguracja i podstawowe zapytania

Do pracy z API będziemy używać biblioteki requests, którą na pewno już opanowałeś. Napiszmy prostą aplikację, która będzie pobierać dane pogodowe z popularnego API OpenWeather (bo programowanie to nie tylko 0 i 1, ale też deszcz czy słońce).

Python
import requests

# Zamień 'your_api_key' na twój klucz API
api_key = 'your_api_key'
city = 'Moscow'
url = f'http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}'

response = requests.get(url)
# Sprawdzamy, czy zapytanie się powiodło
if response.status_code == 200:
    data = response.json()
    print(f"Temperatura w {city}: {data['main']['temp']}K")
else:
    print("Błąd podczas pobierania danych pogodowych")

Analiza i przetwarzanie danych

JSON — to jak CSV, tylko fajniejsze! Struktura JSON przypomina słowniki i listy w Pythonie, dlatego przetwarzanie danych staje się niemal intuicyjne. W powyższym przykładzie wyciągnęliśmy temperaturę, wskazując po prostu ścieżkę do potrzebnych danych (data['main']['temp']).

Rzeczywiste przypadki: praca z API dla procesów biznesowych

API w prawdziwym życiu może znacznie ułatwić Ci życie. Wyobraź sobie, że tworzysz serwis do wyświetlania wiadomości. Zamiast scrapować dziesiątki stron, możesz użyć API agencji prasowych, które dostarczą Ci najnowsze artykuły w wygodnej formie. Albo, jeśli chcesz zintegrować płatności na swojej stronie, API systemów płatności (np. PayPal lub Stripe) z łatwością to umożliwią.

3. Przykłady korzystania z otwartych API

Przykład: Praca z NewsAPI

Stwórzmy proste narzędzie do pobierania najnowszych wiadomości.

Python
import requests

api_key = 'your_news_api_key'
url = f'https://newsapi.org/v2/top-headlines?country=us&apiKey={api_key}'

response = requests.get(url)
if response.status_code == 200:
    articles = response.json().get('articles', [])
    for article in articles:
        print(f"Tytuł: {article['title']}")
        print(f"Opis: {article['description']}")
else:
    print("Błąd podczas pobierania wiadomości")

Przykłady analizy danych otrzymanych przez API

Korzystanie z API może być przydatne nie tylko do wymiany informacji, ale także do ich analizy. Na przykład za pomocą API giełd możesz pobierać dane o kursach walut i akcji, by analizować rynek lub tworzyć prognozy.

4. Strategie pracy z API

Nawigowanie po dokumentacji

Dokumentacja to Twój najlepszy przyjaciel, gdy chodzi o API. Opisuje wszystkie dostępne endpointy, możliwe parametry zapytań, formaty zwracanych danych i ograniczenia. Nie lekceważ czasu spędzonego na czytaniu dokumentacji — to inwestycja, która się opłaci.

Uwierzytelnianie i autoryzacja

Większość API wymaga uwierzytelnienia, aby można było z nich korzystać. Zwykle odbywa się to za pomocą kluczy API lub tokenów. Jeśli klucz API jest wygasły lub nie został dostarczony, otrzymasz błąd. Upewnij się, że Twoje klucze bezpieczeństwa są przechowywane w bezpiecznym miejscu i nie trafiają do publicznych repozytoriów.

Limity zapytań i obsługa odpowiedzi

API często nakładają ograniczenia na liczbę zapytań. Na przykład wersja darmowa może pozwalać na jedynie 100 zapytań dziennie. W takim przypadku ważne jest optymalizowanie zapytań i obsługa sytuacji, gdy limit zapytań zostanie wyczerpany. Można to zrobić, konfigurując timeouty lub dodając opóźnienia między zapytaniami.

5. Połączenie z API do tworzenia raportów

Teraz, gdy mamy pewne pojęcie o tym, jak działają API, zrealizujmy mały projekt. Załóżmy, że pracujemy nad aplikacją, która zbiera dane pogodowe i zapisuje je w raporcie.

Python
import requests
import pandas as pd
from datetime import datetime

api_key = 'your_api_key'
cities = ['Moscow', 'New York', 'London']
weather_data = []

for city in cities:
    url = f'http://api.openweathermap.org/data/2.5/weather?q={city}&appid={api_key}'
    response = requests.get(url)
    if response.status_code == 200:
        data = response.json()
        weather_data.append({
            'City': city,
            'Temperature': data['main']['temp'],
            'Humidity': data['main']['humidity'],
            'Description': data['weather'][0]['description'],
            'Timestamp': datetime.now()
        })
    else:
        print(f"Błąd podczas pobierania danych pogodowych w {city}")

# Konwertujemy dane do DataFrame
df = pd.DataFrame(weather_data)

# Zapisujemy dane do pliku Excel
df.to_excel('weather_report.xlsx', index=False)

Za pomocą tego skryptu pobieramy dane pogodowe dla kilku miast, zbieramy je i zapisujemy w raporcie Excel. To prosty, ale potężny przykład wykorzystania API do budowania zautomatyzowanych systemów zbierania danych.

Dla nas API to jak magiczny klucz dostępu do ogromnych ilości danych, często niedostępnych w zwykłych stronach HTML. Umożliwiają wymianę informacji, tworzenie potężnych aplikacji i oszczędzają czas. Korzystajcie z nich, a Wasze projekty nabiorą nowych barw!

1
Zadanie
Python SELF PL, poziom 34, lekcja 2
Niedostępne
Podstawowe żądanie do API
Podstawowe żądanie do API
2
Zadanie
Python SELF PL, poziom 34, lekcja 2
Niedostępne
Przetwarzanie danych uzyskanych przez API
Przetwarzanie danych uzyskanych przez API
3
Zadanie
Python SELF PL, poziom 34, lekcja 2
Niedostępne
Analiza danych z API
Analiza danych z API
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION