Om du ofta kommer på att du hämtar data från webbplatser bör du förmodligen överväga att automatisera processen. Processen kallas ibland för "webskrapning" och är vanlig för webbplatser som inte tillhandahåller ett formellt API eller flöde. Naturligtvis kommer du ingen vart om sidan du försöker hämta är otillgänglig.

Om du driver din egen sajt har du förmodligen varit tvungen att hantera driftstopp tidigare. Det kan vara frustrerande, få dig att tappa besökare och avbryta all aktivitet som din webbplats kan vara ansvarig för. Under sådana omständigheter lönar det sig att enkelt kunna kontrollera din hemsidas tillgänglighet.

Python är ett utmärkt språk för skript, och dess kortfattade men läsbara syntax gör det enkelt att implementera en webbplatskontroll.

Skapa din personliga webbläsare

Webbplatskontrollen är skräddarsydd för att rymma flera webbplatser samtidigt. Detta gör att du enkelt kan byta ut webbplatser du inte längre bryr dig om, eller börja kolla webbplatser som du lanserar i framtiden. Checkeren är en idealisk "skelettapp" som du kan bygga vidare på, men den visar ett grundläggande tillvägagångssätt för att hämta webbdata.

instagram viewer

Importera bibliotek i Python

För att starta projektet måste du importera förfrågningar bibliotek i Python med importera fungera.

importera förfrågningar

Biblioteket Requests är användbart för att kommunicera med webbplatser. Du kan använda den för att skicka HTTP-förfrågningar och ta emot svarsdata.

Lagra webbadresserna i en lista

När du väl har importerat biblioteket bör du definiera och lagra webbadresserna i en lista. Det här steget låter dig behålla flera webbadresser, som du kan kontrollera med webbplatskontrollen.

importera förfrågningar

website_url = [
" https://www.google.co.i",
" https://www.yahoo.com",
" https://www.amazon.co.i",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]

Variabeln webbadress lagrar listan med webbadresser. Inuti listan definierar du varje URL som du vill kontrollera som en individuell sträng. Du kan använda exempelwebbadresserna i koden för att testa eller så kan du byta ut dem för att börja kolla dina egna webbplatser direkt.

Spara sedan meddelandena för gemensamma HTTP-svarskoder. Du kan förvara dessa i en ordbok och indexera varje meddelande med dess motsvarande statuskod. Ditt program kan sedan använda dessa meddelanden istället för statuskoder för bättre läsbarhet.

statusar = {
200: "Webbplats tillgänglig",
301: "Permanent omdirigering",
302: "Tillfällig omdirigering",
404: "Hittades inte",
500: "Internt serverfel",
503: "Tjänsten är inte tillgänglig"
}

Skapa en loop för att kontrollera webbplatsens status

För att kontrollera varje webbadress i tur och ordning, vill du gå igenom listan av webbplatser. Inuti slingan, kontrollera statusen för varje webbplats genom att skicka en förfrågan via förfrågningsbiblioteket.

för url i webbadress:
Prova:
web_response = requests.get (url)
print (url, statuss[web_response.status_code])

bortsett från:
print (url, statuss[web_response.status_code])

Var:

  • för url...itererar över listan med webbadresser.
  • url är variabeln som for-loopen tilldelar varje URL till.
  • försök/utomhanterar eventuella undantag som kan uppstå.
  • web_response är en variabel som förser en egenskap med svarets statuskod

Hela kodavsnittet

Om du föredrar att granska hela koden på en gång, här är en fullständig kodlista som referens.

importera förfrågningar

website_url = [
" https://www.google.co.i",
" https://www.yahoo.com",
" https://www.amazon.co.i",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]

statusar = {
200: "Webbplats tillgänglig",
301: "Permanent omdirigering",
302: "Tillfällig omdirigering",
404: "Hittades inte",
500: "Internt serverfel",
503: "Tjänsten är inte tillgänglig"
}

för url i webbadress:
Prova:
web_response = requests.get (url)
print (url, statuss[web_response.status_code])

bortsett från:
print (url, statuss[web_response.status_code])

Och här är ett exempel på koden:

Pythons kodningsfunktioner i webbskrapning

Pythons tredjepartsbibliotek är idealiska för uppgifter som webbskrapa och hämta data via HTTP.

Du kan skicka automatiska förfrågningar till webbplatser för att utföra olika typer av uppgifter. Dessa kan inkludera att läsa nyhetsrubriker, ladda ner bilder och skicka e-post automatiskt.