Kui leiate end sageli veebisaitidelt andmeid toomas, peaksite tõenäoliselt kaaluma protsessi automatiseerimist. Mõnikord nimetatakse seda "veebi kraapimiseks" ja see on tavaline saitide puhul, mis ei paku ametlikku API-d või voogu. Muidugi ei jõua te kuhugi, kui sait, mida proovite tuua, pole saadaval.
Kui haldate oma saiti, olete tõenäoliselt varem seisakutega pidanud tegelema. See võib olla masendav, põhjustades külastajate kaotamise ja katkestades kõik tegevused, mille eest teie sait võib vastutada. Sellistel juhtudel tasub oma veebisaidi saadavust hõlpsalt kontrollida.
Python on suurepärane keel skriptimiseks ja selle lühike, kuid loetav süntaks muudab saidikontrolli rakendamise lihtsaks ülesandeks.
Isikupärastatud veebisaidi kontrollija loomine
Veebisaidi kontrollija on kohandatud mitme veebisaidi korraga mahutamiseks. See võimaldab teil hõlpsasti välja lülitada saidid, millest te enam ei hooli, või hakata kontrollima saite, mida tulevikus käivitate. Kontrollija on ideaalne "skeletirakendus", millele saate edasi ehitada, kuid see näitab veebiandmete toomise põhilist lähenemisviisi.
Impordi raamatukogud Pythonis
Projekti käivitamiseks peate importima faili taotlusi raamatukogu Pythonis koos importida funktsiooni.
importida taotlusi
Taotluste teek on kasulik veebisaitidega suhtlemiseks. Saate seda kasutada HTTP-päringute saatmiseks ja vastuste andmete vastuvõtmiseks.
Salvestage veebisaidi URL-id loendis
Pärast teegi importimist peaksite veebisaidi URL-id loendis määratlema ja salvestama. See samm võimaldab teil säilitada mitu URL-i, mida saate veebisaidi kontrollijaga kontrollida.
importida taotlusi
website_url = [
" https://www.google.co.sisse",
" https://www.yahoo.com",
" https://www.amazon.co.sisse",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]
Muutuja Veebilehe aadress salvestab URL-ide loendi. Määrake loendis iga URL, mida soovite kontrollida, üksiku stringina. Saate testimiseks kasutada koodis olevaid näidis-URL-e või asendada need, et alustada kohe oma saitide kontrollimist.
Järgmisena salvestage sõnumid ühiseks kasutamiseks HTTP vastuse koodid. Saate neid sõnastikus hoida ja iga sõnumit vastava olekukoodi järgi indekseerida. Seejärel saab teie programm parema loetavuse huvides kasutada neid sõnumeid olekukoodide asemel.
olekud = {
200: "Veebisait on saadaval",
301: "Püsiv ümbersuunamine",
302: "Ajutine ümbersuunamine",
404: "Ei leitud",
500: "Sisemine serveri viga",
503: "Teenus pole saadaval"
}
Loop veebisaidi oleku kontrollimiseks
Iga URL-i kordamööda kontrollimiseks peate seda tegema loendit sirvida veebisaitidest. Silmuse sees kontrollige iga saidi olekut, saates päringu taotluste teegi kaudu.
jaoks url sisse Veebilehe aadress:
proovige:
web_response = requests.get (url)
print (url, staatused[web_response.status_code])
välja arvatud:
print (url, staatused[web_response.status_code])
Kus:
- URL-i jaoks...kordab URL-ide loendit.
- url on muutuja, millele tsükkel for määrab iga URL-i.
- proovi/välja arvatudkäsitleb kõiki erandeid mis võib tekkida.
- web_response on muutuja, mis pakub atribuuti koos vastuse olekukoodiga
Kogu koodilõik
Kui eelistate kogu koodi ühe korraga üle vaadata, on siin viitamiseks täielik koodiloend.
importida taotlusi
website_url = [
" https://www.google.co.sisse",
" https://www.yahoo.com",
" https://www.amazon.co.sisse",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]olekud = {
200: "Veebisait on saadaval",
301: "Püsiv ümbersuunamine",
302: "Ajutine ümbersuunamine",
404: "Ei leitud",
500: "Sisemine serveri viga",
503: "Teenus pole saadaval"
}jaoks url sisse Veebilehe aadress:
proovige:
web_response = requests.get (url)
print (url, staatused[web_response.status_code])
välja arvatud:
print (url, staatused[web_response.status_code])
Ja siin on näide koodi käivitamisest:
Pythoni kodeerimisvõimalused veebikraapimisel
Pythoni kolmanda osapoole teegid sobivad ideaalselt selliste ülesannete jaoks nagu veebi kraapimine ja andmete toomine HTTP kaudu.
Saate saata veebisaitidele automatiseeritud päringuid erinevat tüüpi toimingute tegemiseks. Need võivad hõlmata uudiste pealkirjade lugemist, piltide allalaadimist ja e-kirjade automaatset saatmist.