Hvis du ofte finner deg selv i å hente data fra nettsider, bør du sannsynligvis vurdere å automatisere prosessen. Noen ganger referert til som "nettskraping", er prosessen vanlig for nettsteder som ikke tilbyr en formell API eller feed. Selvfølgelig kommer du ingen vei hvis nettstedet du prøver å hente er utilgjengelig.
Hvis du driver din egen side, har du sannsynligvis måttet forholde deg til nedetid før. Det kan være frustrerende, føre til at du mister besøkende og forstyrrer den aktiviteten som nettstedet ditt kan være ansvarlig for. Under slike omstendigheter lønner det seg å enkelt kunne sjekke nettstedets tilgjengelighet.
Python er et flott språk for skripting, og dets konsise, men likevel lesbare syntaks gjør implementering av en sidesjekker til en enkel oppgave.
Opprette din personlige nettsidesjekker
Nettstedsjekkeren er skreddersydd for å imøtekomme flere nettsteder samtidig. Dette lar deg enkelt bytte ut nettsteder du ikke lenger bryr deg om, eller begynne å sjekke nettsteder du lanserer i fremtiden. Checkeren er en ideell "skjelett-app" som du kan bygge videre på, men den demonstrerer en grunnleggende tilnærming til å hente nettdata.
Importer biblioteker i Python
For å starte prosjektet, må du importere forespørsler bibliotek i Python med import funksjon.
import forespørsler
Requests-biblioteket er nyttig for å kommunisere med nettsteder. Du kan bruke den til å sende HTTP-forespørsler og motta svardata.
Lagre nettadressene i en liste
Når du har importert biblioteket, bør du definere og lagre nettadressene i en liste. Dette trinnet lar deg beholde flere nettadresser, som du kan sjekke med nettsidekontrollen.
import forespørsler
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"
]
Variabelen nettsideadresse lagrer listen over URL-er. Inne i listen definerer du hver URL du vil sjekke som en individuell streng. Du kan bruke eksempel-URL-ene i koden for testing, eller du kan erstatte dem for å begynne å sjekke dine egne nettsteder med en gang.
Deretter lagrer du meldingene for felles HTTP-svarkoder. Du kan oppbevare disse i en ordbok, og indeksere hver melding med tilhørende statuskode. Programmet ditt kan da bruke disse meldingene i stedet for statuskoder for bedre lesbarhet.
statuser = {
200: "Nettsted tilgjengelig",
301: "Permanent viderekobling",
302: "Midlertidig viderekobling",
404: "Ikke funnet",
500: "Intern server feil",
503: "Tjenesten utilgjengelig"
}
Opprette en løkke for å sjekke nettstedstatus
For å sjekke hver URL etter tur, må du gjøre det gå gjennom listen av nettsteder. Inne i loopen, sjekk statusen til hvert nettsted ved å sende en forespørsel via forespørselsbiblioteket.
til url i nettsideadresse:
prøve:
web_response = requests.get (url)
print (url, statuser[web_response.status_code])
unntatt:
print (url, statuser[web_response.status_code])
Hvor:
- for url...itererer over listen over nettadresser.
- url er variabelen som for-løkken tilordner hver URL til.
- prøv/unntatthåndterer eventuelle unntak som kan oppstå.
- web_response er en variabel som gir en egenskap svarets statuskode
Hele kodebiten
Hvis du foretrekker å se gjennom hele koden på én gang, her er en fullstendig kodeliste for referanse.
import forespørsler
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"
]statuser = {
200: "Nettsted tilgjengelig",
301: "Permanent viderekobling",
302: "Midlertidig viderekobling",
404: "Ikke funnet",
500: "Intern server feil",
503: "Tjenesten utilgjengelig"
}til url i nettsideadresse:
prøve:
web_response = requests.get (url)
print (url, statuser[web_response.status_code])
unntatt:
print (url, statuser[web_response.status_code])
Og her er et eksempel på kjøring av koden:
Pythons kodefunksjoner i nettskraping
Pythons tredjepartsbiblioteker er ideelle for oppgaver som nettskraping og henting av data via HTTP.
Du kan sende automatiserte forespørsler til nettsteder for å utføre ulike typer oppgaver. Disse kan inkludere å lese nyhetsoverskrifter, laste ned bilder og sende e-poster automatisk.