Aby scrapować dane z **Adzuna** i zapisać je do pliku **XLS**, należy podejść do tego w sposób zgodny z regulaminem serwisu. **Adzuna** oferuje **oficjalne API**, więc najpierw warto zapoznać się z dokumentacją API, aby pozyskać dane w sposób legalny i kontrolowany.

### 1. **Adzuna API**:
Adzuna udostępnia API, które umożliwia pobieranie danych o ofertach pracy. API oferuje różne opcje filtrowania, takie jak lokalizacja, rodzaj pracy, kategoria, wynagrodzenie itp.

#### Jak korzystać z API Adzuna:
– **Zarejestruj się na platformie Adzuna**: Aby korzystać z API, musisz założyć konto i uzyskać **API Key**.
– Link do rejestracji: [Adzuna API](https://developer.adzuna.com/)
– **Zasady korzystania z API**:
– API jest bezpłatne do pewnego limitu zapytań (zwykle do 1000 zapytań dziennie). Jeżeli potrzebujesz większych limitów, możesz skontaktować się z Adzuna.

#### Przykładowe zapytanie API:
Za pomocą API możesz wysłać zapytanie o oferty pracy, np. w Polsce, używając zapytania w formacie JSON:

“`bash
https://api.adzuna.com/v1/api/jobs/pl/search/1?app_id=YOUR_APP_ID&app_key=YOUR_APP_KEY&results_per_page=50&what=developer
“`

– **app_id** i **app_key** to Twoje dane logowania z Adzuna.
– W tym przykładzie zapytanie dotyczy ofert pracy w Polsce, wyszukując oferty z frazą „developer” i limitując wyniki do 50 pozycji na stronę.

### 2. **Zbieranie danych do pliku XLS**

Po uzyskaniu danych z API, musisz je przetworzyć i zapisać do pliku Excel (XLSX). W tym celu można użyć Pythona i kilku popularnych bibliotek, takich jak **`requests`**, **`pandas`** i **`openpyxl`**.

#### Krok po kroku:

##### a. **Zainstaluj wymagane biblioteki**

Najpierw zainstaluj biblioteki w Pythonie:

“`bash
pip install requests pandas openpyxl
“`

##### b. **Pobierz dane z API Adzuna**

Użyj Python do wysłania zapytania do API i pobrania wyników.

“`python
import requests
import pandas as pd

# Twoje dane logowania do API
app_id = ‘YOUR_APP_ID’
app_key = ‘YOUR_APP_KEY’

# URL do API
url = f’https://api.adzuna.com/v1/api/jobs/pl/search/1?app_id={app_id}&app_key={app_key}&results_per_page=50&what=developer’

# Pobierz dane z API
response = requests.get(url)
data = response.json()

# Sprawdź, czy są wyniki
if ‘results’ in data:
job_list = data[‘results’]
else:
print(“Brak wyników.”)
job_list = []

# Wyciągnij interesujące dane (np. tytuł, firma, lokalizacja, wynagrodzenie)
jobs_data = []
for job in job_list:
jobs_data.append({
‘title’: job.get(‘title’, ‘Brak’),
‘company’: job.get(‘company’, {}).get(‘display_name’, ‘Brak’),
‘location’: job.get(‘location’, {}).get(‘display_name’, ‘Brak’),
‘salary’: job.get(‘salary_min’, ‘Brak’) or job.get(‘salary_max’, ‘Brak’),
‘url’: job.get(‘redirect_url’, ‘Brak’)
})

# Stwórz DataFrame
df = pd.DataFrame(jobs_data)

# Zapisz dane do pliku Excel (XLSX)
df.to_excel(‘oferty_pracy_adzuna.xlsx’, index=False)

print(“Dane zapisane do pliku XLSX.”)
“`

#### Krok po kroku, co ten kod robi:
1. **Łączenie z API**: Wysyła zapytanie do API Adzuna z odpowiednimi parametrami.
2. **Parsowanie wyników**: Z otrzymanych wyników (w formacie JSON) wyciąga istotne informacje: tytuł oferty, nazwa firmy, lokalizacja, wynagrodzenie, URL oferty.
3. **Tworzenie DataFrame**: Za pomocą `pandas` tworzy tabelę z wyciągniętymi danymi.
4. **Zapis do pliku Excel**: Za pomocą `pandas.to_excel()` zapisuje wyniki w pliku Excel (`.xlsx`).

#### c. **Otwórz wynikowy plik Excel**

Po wykonaniu powyższego skryptu, w folderze roboczym pojawi się plik **`oferty_pracy_adzuna.xlsx`**, zawierający dane ofert pracy z Adzuna.

### 3. **Dalsze kroki i optymalizacja**

– **Filtrowanie i sortowanie**: Możesz dodać dodatkowe filtry w zapytaniu do API, aby uzyskać dokładniejsze wyniki (np. konkretne lokalizacje, branże, zakresy wynagrodzenia).
– **Zwiększenie liczby wyników**: Możesz zmienić parametr `results_per_page` w zapytaniu do API, aby uzyskać więcej ofert pracy w jednej odpowiedzi (maksymalnie 200 ofert na stronę).

### 4. **Uwagi prawne i etyczne**
– **Zgoda z regulaminem**: Używanie API Adzuna do pobierania danych jest legalne, ale należy upewnić się, że nie przekracza się limitów API i że zbierane dane będą wykorzystywane zgodnie z regulaminem serwisu.
– **Dane osobowe**: Jeśli scrapujesz dane o użytkownikach, pamiętaj o przestrzeganiu przepisów dotyczących ochrony danych osobowych (np. RODO w UE).

### Podsumowanie:
1. Zarejestruj się w Adzuna i zdobądź **API Key**.
2. Użyj zapytań do API Adzuna w celu pobrania ofert pracy.
3. Zastosuj Python z bibliotekami **`requests`**, **`pandas`** oraz **`openpyxl`** do zapisania danych do pliku **XLSX**.

Taki proces pozwala na legalne i kontrolowane pozyskiwanie danych z Adzuna i zapisanie ich do pliku w formacie Excel.