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.