Request bez přihlášení
Instalace knihoven
Stažení knihoven pro posílání http requestů a případně zpracování dat.
Requests je knihovna pro posílání http requestů.
Requests je knihovna pro posílání http requestů.
Knihovna httr
slouží k posílání http requestů.
Readr slouží k načítání dat formátu například CSV nebo JSON.
Více o http requestech zde.
Template pro request na webové služby.
K odeslání requestu je potřeba znát url služby a url parametry (také jako query parametry, dále jen parametry), které služba vyžaduje.
Request /predmety/getPredmetInfo
Na ukázku jeden konkrétní příklad. /predmety/getPredmetInfo
Výše uvedený odkaz otevře rozhraní služby /predmety/getPredmetInfo
. K vyplnění je zde několik parametrů. Červenou hvězdičkou jsou označeny povinné parametry. Bez těchto parametrů nelze request odeslat (resp. server vrátí status kód 500 - Internal Server Error
).
Služba s vyplněnými parametry vypadá následovně:
Po odeslání requestu se zobrazí výsledek volání webové služby. Kromě konkrétního souboru ke stažení nás hlavně zajímá Adresa. Z té vyčteme url a názvy jednotlivých parametrů.
Url parametry
Parametry a jejch hodnoty se v adrese nacházejí za otazníkem. V našem případě vypadá takto:
?katedra=KMA&zkratka=MA2&rok=2023&lang=cs&outputFormat=CSV&outputFormatEncoding=utf-8
.
Jednotlivé parametry a jejich hodnoty jsou ve formátu parametr=hodnota
. Mezi jednotlivými parametry je oddělovač &
. Naše parametry v tomto případě jsou:
Parametr | Hodnota |
---|---|
katedra | KMA |
zkratka | MA2 |
rok | 2023 |
lang | cs |
outputFormat | CSV |
Po doplnění správné url a parametrů by request na tuto službu vypadal následovně:
import requests
import pandas as pd
from io import StringIO
url = "https://ws.ujep.cz/ws/services/rest2/predmety/getPredmetInfo"
params = {
"katedra": "KMA",
"zkratka": "MA2",
"rok": "2023",
"lang": "cs",
"outputFormat": "CSV", # (1)!
"outputFormatEncoding": "utf-8"
}
data = requests.get(
url,
params=params,
)
df = pd.read_csv(StringIO(data.text), sep=";")
- Parametry
outputFormat
aoutputFormatEncoding
budou součástí každého našeho requestu.
library(httr)
library(readr)
url <- "https://ws.ujep.cz/ws/services/rest2/predmety/getPredmetInfo"
params <- list(
katedra = "KMA",
zkratka = "MA2",
rok = "2023",
lang = "cs",
outputFormat = "CSV", # (1)!
outputFormatEncoding = "utf-8"
)
data <- GET(
url,
query = params
)
df <- read_csv2(rawToChar(data$content))
- Parametry
outputFormat
aoutputFormatEncoding
budou součástí každého našeho requestu.
Encoding
Soubory ve formátu CSV webové služby defaultně vrací v kódování windows-1250. Pro správné načtení dat je potřeba přidat parametr outputFormatEncoding=utf-8
.
Dokumentace