Hvis du ofte finder dig selv i at hente data fra hjemmesider, bør du nok overveje at automatisere processen. Nogle gange kaldet "web-skrabning", processen er en almindelig for websteder, der ikke leverer en formel API eller feed. Du kommer selvfølgelig ingen vegne, hvis det websted, du prøver at hente, ikke er tilgængeligt.

Hvis du driver dit eget websted, har du sandsynligvis været nødt til at håndtere nedetid før. Det kan være frustrerende, få dig til at miste besøgende og afbryde enhver aktivitet, dit websted kan være ansvarlig for. Under sådanne omstændigheder kan det betale sig nemt at kunne tjekke din hjemmesides tilgængelighed.

Python er et fantastisk sprog til scripting, og dets kortfattede, men alligevel læsbare syntaks gør implementering af et webstedstjek til en enkel opgave.

Oprettelse af din personlige hjemmesidekontrol

Hjemmesidetjekkeren er skræddersyet til at rumme flere hjemmesider på én gang. Dette giver dig mulighed for nemt at udskifte websteder, du ikke længere interesserer dig for, eller begynde at tjekke websteder, som du lancerer i fremtiden. Checkeren er en ideel "skelet-app", som du kan bygge videre på, men den demonstrerer en grundlæggende tilgang til at hente webdata.

instagram viewer

Importer biblioteker i Python

For at starte projektet skal du importere anmodninger bibliotek i Python med importere fungere.

importere anmodninger

Anmodningsbiblioteket er nyttigt til at kommunikere med websteder. Du kan bruge den til at sende HTTP-anmodninger og modtage svardata.

Gem webstedets URL'er på en liste

Når du har importeret biblioteket, skal du definere og gemme webstedets URL'er på en liste. Dette trin giver dig mulighed for at beholde flere URL'er, som du kan tjekke med webstedskontrollen.

importere anmodninger

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"
]

Variablen Hjemmeside URL gemmer listen over URL'er. Inde i listen skal du definere hver URL, du vil kontrollere, som en individuel streng. Du kan bruge eksempel-URL'erne i koden til test, eller du kan erstatte dem for at begynde at tjekke dine egne websteder med det samme.

Gem derefter beskederne til fælles HTTP-svarkoder. Du kan opbevare disse i en ordbog og indeksere hver besked efter dens tilsvarende statuskode. Dit program kan derefter bruge disse meddelelser i stedet for statuskoder for bedre læsbarhed.

statuss = {
200: "Websted tilgængelig",
301: "Permanent omdirigering",
302: "Midlertidig omdirigering",
404: "Ikke fundet",
500: "Intern serverfejl",
503: "Service ikke tilgængelig"
}

Oprettelse af en sløjfe for at kontrollere webstedsstatus

For at kontrollere hver URL efter tur, vil du gerne gå gennem listen af hjemmesider. Inde i løkken skal du kontrollere status for hvert websted ved at sende en anmodning via anmodningsbiblioteket.

til url i Hjemmeside URL:
prøve:
web_response = requests.get (url)
print (url, statuss[web_response.status_code])

undtagen:
print (url, statuss[web_response.status_code])

Hvor:

  • til url...itererer over listen over URL'er.
  • url er den variabel, som for-løkken tildeler hver URL til.
  • prøv/undtagenhåndterer eventuelle undtagelser der kan opstå.
  • web_respons er en variabel, der giver en egenskab svarets statuskode

Hele kodestykket

Hvis du foretrækker at gennemgå hele koden på én gang, er her en komplet kodeliste til reference.

importere anmodninger

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"
]

statuss = {
200: "Websted tilgængelig",
301: "Permanent omdirigering",
302: "Midlertidig omdirigering",
404: "Ikke fundet",
500: "Intern serverfejl",
503: "Service ikke tilgængelig"
}

til url i Hjemmeside URL:
prøve:
web_response = requests.get (url)
print (url, statuss[web_response.status_code])

undtagen:
print (url, statuss[web_response.status_code])

Og her er et eksempel på kørsel af koden:

Pythons kodningsfunktioner i webskrabning

Pythons tredjepartsbiblioteker er ideelle til opgaver som web-skrabning og hentning af data via HTTP.

Du kan sende automatiske anmodninger til websteder for at udføre forskellige typer opgaver. Disse kan omfatte læsning af nyhedsoverskrifter, download af billeder og automatisk afsendelse af e-mails.