Pokud se vám často stává, že získáváte data z webových stránek, měli byste pravděpodobně zvážit automatizaci procesu. Někdy označovaný jako „web scraping“ je proces běžný u webů, které neposkytují formální API nebo feed. Samozřejmě se nikam nedostanete, pokud je stránka, kterou se snažíte načíst, nedostupná.
Pokud provozujete svůj vlastní web, pravděpodobně jste se již dříve museli potýkat s výpadky. Může to být frustrující, způsobí to ztrátu návštěvníků a přerušení jakékoli činnosti, za kterou může být váš web zodpovědný. Za takových okolností se vyplatí mít možnost snadno zkontrolovat dostupnost vašeho webu.
Python je skvělý jazyk pro skriptování a jeho stručná, ale čitelná syntaxe dělá z implementace nástroje pro kontrolu webu jednoduchý úkol.
Vytvoření personalizované kontroly webových stránek
Kontrola webových stránek je přizpůsobena tak, aby vyhovovala více webům najednou. To vám umožní snadno přepnout weby, které vás již nezajímají, nebo začít kontrolovat weby, které spustíte v budoucnu. Checker je ideální „kostlivou aplikací“, na které byste mohli dále stavět, ale ukazuje základní přístup k načítání webových dat.
Import knihoven v Pythonu
Chcete-li zahájit projekt, musíte importovat soubor žádosti knihovna v Pythonu s import funkce.
import žádosti
Knihovna požadavků je užitečná pro komunikaci s webovými stránkami. Můžete jej použít k odesílání požadavků HTTP a přijímání dat odpovědí.
Uložte adresy URL webových stránek do seznamu
Po importu knihovny byste měli definovat a uložit adresy URL webových stránek do seznamu. Tento krok vám umožňuje zachovat více adres URL, které můžete zkontrolovat pomocí nástroje pro kontrolu webových stránek.
import žádosti
website_url = [
" https://www.google.co.v",
" https://www.yahoo.com",
" https://www.amazon.co.v",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]
Proměnná URL stránky ukládá seznam adres URL. V seznamu definujte každou adresu URL, kterou chcete zkontrolovat, jako samostatný řetězec. Vzorové adresy URL v kódu můžete použít k testování nebo je můžete nahradit a začít ihned kontrolovat své vlastní stránky.
Dále uložte zprávy pro společné HTTP kódy odpovědí. Můžete je uchovávat ve slovníku a indexovat každou zprávu podle odpovídajícího stavového kódu. Váš program pak může tyto zprávy použít místo stavových kódů pro lepší čitelnost.
stavy = {
200: "Dostupný web",
301: "Trvalé přesměrování",
302: "Dočasné přesměrování",
404: "Nenalezeno",
500: "Interní chyba serveru",
503: "Služba je nedostupná"
}
Vytvoření smyčky pro kontrolu stavu webu
Chcete-li postupně zkontrolovat každou adresu URL, budete chtít procházet seznamem webových stránek. Uvnitř smyčky zkontrolujte stav každého webu odesláním požadavku prostřednictvím knihovny požadavků.
pro url v URL stránky:
Snaž se:
web_response = requests.get (url)
tisknout (url, stavy[web_response.status_code])
až na:
tisknout (url, stavy[web_response.status_code])
Kde:
- pro url...iteruje přes seznam adres URL.
- url je proměnná, které cyklus for přiřadí každou adresu URL.
- zkusit/kroměřeší případné výjimky které mohou vzniknout.
- web_response je proměnná, která poskytuje vlastnost se stavovým kódem odpovědi
Úryvek celého kódu
Pokud dáváte přednost prohlížení celého kódu najednou, zde je úplný seznam kódů pro referenci.
import žádosti
website_url = [
" https://www.google.co.v",
" https://www.yahoo.com",
" https://www.amazon.co.v",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]stavy = {
200: "Dostupný web",
301: "Trvalé přesměrování",
302: "Dočasné přesměrování",
404: "Nenalezeno",
500: "Interní chyba serveru",
503: "Služba je nedostupná"
}pro url v URL stránky:
Snaž se:
web_response = requests.get (url)
tisknout (url, stavy[web_response.status_code])
až na:
tisknout (url, stavy[web_response.status_code])
A zde je příklad spuštění kódu:
Schopnosti kódování Pythonu ve skracování webu
Knihovny třetích stran Pythonu jsou ideální pro úkoly, jako je škrábání webu a načítání dat přes HTTP.
Webovým stránkám můžete posílat automatizované požadavky na provádění různých typů úkolů. Ty mohou zahrnovat čtení titulků zpráv, stahování obrázků a automatické odesílání e-mailů.