Ako često dohvaćate podatke s web stranica, vjerojatno biste trebali razmisliti o automatizaciji procesa. Ponekad se naziva "skrapiranje weba", proces je uobičajen za web stranice koje ne pružaju službeni API ili feed. Naravno, nećete nikamo stići ako je stranica koju pokušavate dohvatiti nedostupna.
Ako vodite vlastitu web-stranicu, vjerojatno ste se prije morali nositi sa zastojima. To može biti frustrirajuće, uzrokujući gubitak posjetitelja i prekid bilo koje aktivnosti za koju je odgovorna vaša stranica. U takvim okolnostima isplati se jednostavno provjeriti dostupnost vaše web stranice.
Python je izvrstan jezik za skriptiranje, a njegova koncizna, ali čitljiva sintaksa čini implementaciju alata za provjeru web stranica jednostavnim zadatkom.
Stvaranje vašeg prilagođenog alata za provjeru web stranica
Alat za provjeru web-mjesta izrađen je po mjeri za prilagodbu više web-mjesta odjednom. To vam omogućuje da jednostavno isključite web stranice do kojih vam više nije stalo ili da počnete provjeravati web stranice koje pokrenete u budućnosti. Checker je idealna "kostura aplikacije" na kojoj biste mogli dalje graditi, ali pokazuje osnovni pristup dohvaćanju web podataka.
Uvoz biblioteka u Python
Da biste pokrenuli projekt, morate uvesti zahtjevi knjižnica u Pythonu s uvoz funkcija.
uvoz zahtjevi
Biblioteka zahtjeva korisna je za komunikaciju s web stranicama. Možete ga koristiti za slanje HTTP zahtjeva i primanje podataka odgovora.
Pohranite URL-ove web-mjesta na popis
Nakon što uvezete biblioteku, trebali biste definirati i pohraniti URL-ove web-mjesta na popis. Ovaj vam korak omogućuje zadržavanje višestrukih URL-ova, koje možete provjeriti alatom za provjeru web-mjesta.
uvoz zahtjevi
website_url = [
" https://www.google.co.u",
" https://www.yahoo.com",
" https://www.amazon.co.u",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]
Varijabla website_url pohranjuje popis URL-ova. Unutar popisa definirajte svaki URL koji želite provjeriti kao pojedinačni niz. Možete upotrijebiti primjere URL-ova u kodu za testiranje ili ih možete zamijeniti kako biste odmah počeli provjeravati vlastite stranice.
Zatim pohranite poruke za common HTTP kodovi odgovora. Možete ih čuvati u rječniku i indeksirati svaku poruku prema odgovarajućem statusnom kodu. Vaš program tada može koristiti te poruke umjesto statusnih kodova radi bolje čitljivosti.
statusi = {
200: "Web stranica dostupna",
301: "Trajno preusmjeravanje",
302: "Privremeno preusmjeravanje",
404: "Nije pronađeno",
500: "Interna greška poslužitelja",
503: "Usluga nedostupna"
}
Stvaranje petlje za provjeru statusa web stranice
Želite li redom provjeriti svaki URL kružiti kroz popis web stranica. Unutar petlje provjerite status svake stranice slanjem zahtjeva putem knjižnice zahtjeva.
za url u website_url:
probati:
web_response = requests.get (url)
ispis (url, statusi[web_response.status_code])
osim:
ispis (url, statusi[web_response.status_code])
Gdje:
- za url...ponavlja popis URL-ova.
- url je varijabla kojoj for petlja dodjeljuje svaki URL.
- pokušati/osimobrađuje sve iznimke koje se mogu pojaviti.
- web_odgovor je varijabla koja daje svojstvo sa statusnim kodom odgovora
Cijeli isječak koda
Ako radije pregledavate cijeli kod odjednom, evo popisa cjelovitih kodova za referencu.
uvoz zahtjevi
website_url = [
" https://www.google.co.u",
" https://www.yahoo.com",
" https://www.amazon.co.u",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]statusi = {
200: "Web stranica dostupna",
301: "Trajno preusmjeravanje",
302: "Privremeno preusmjeravanje",
404: "Nije pronađeno",
500: "Interna greška poslužitelja",
503: "Usluga nedostupna"
}za url u website_url:
probati:
web_response = requests.get (url)
ispis (url, statusi[web_response.status_code])
osim:
ispis (url, statusi[web_response.status_code])
Evo primjera izvođenja koda:
Pythonove mogućnosti kodiranja u Web Scrapingu
Pythonove biblioteke trećih strana idealne su za zadatke kao što su web skraping i dohvaćanje podataka putem HTTP-a.
Možete slati automatizirane zahtjeve web stranicama za obavljanje raznih vrsta zadataka. To može uključivati čitanje naslova vijesti, preuzimanje slika i automatsko slanje e-pošte.