Dacă vă aflați adesea că preluați date de pe site-uri web, probabil că ar trebui să vă gândiți la automatizarea procesului. Denumit uneori „scraping web”, procesul este unul comun pentru site-urile care nu oferă un API sau un feed oficial. Desigur, nu veți ajunge nicăieri dacă site-ul pe care încercați să îl preluați nu este disponibil.

Dacă vă conduceți propriul site, probabil că ați mai avut de-a face cu perioade de nefuncționare înainte. Poate fi frustrant, determinându-vă să pierdeți vizitatori și întrerupând orice activitate de care ar putea fi responsabil site-ul dvs. În astfel de circumstanțe, merită să poți verifica cu ușurință disponibilitatea site-ului tău.

Python este un limbaj excelent pentru scripting, iar sintaxa sa concisă, dar ușor de citit, face ca implementarea unui verificator de site să fie o sarcină simplă.

Crearea site-ului dvs. personalizat de verificare

Verificatorul de site-uri web este adaptat pentru a găzdui mai multe site-uri web simultan. Acest lucru vă permite să comutați cu ușurință site-urile de care nu vă mai pasă sau să începeți să verificați site-urile pe care le lansați în viitor. Verificatorul este o „aplicație schelet” ideală pe care ați putea construi mai departe, dar demonstrează o abordare de bază pentru preluarea datelor web.

instagram viewer

Importați biblioteci în Python

Pentru a începe proiectul, trebuie să importați cereri bibliotecă în Python cu import funcţie.

import cereri

Biblioteca de solicitări este utilă pentru comunicarea cu site-urile web. Îl puteți folosi pentru a trimite solicitări HTTP și pentru a primi date de răspuns.

Stocați adresele URL ale site-urilor web într-o listă

Odată ce importați biblioteca, ar trebui să definiți și să stocați adresele URL ale site-ului web într-o listă. Acest pas vă permite să păstrați mai multe adrese URL, pe care le puteți verifica cu verificatorul site-ului web.

import cereri

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

Variabila Website URL stochează lista de adrese URL. În interiorul listei, definiți fiecare adresă URL pe care doriți să o verificați ca șir individual. Puteți folosi exemplele de adrese URL din cod pentru testare sau le puteți înlocui pentru a începe să vă verificați imediat propriile site-uri.

Apoi, stocați mesajele pentru comun coduri de răspuns HTTP. Puteți să le păstrați într-un dicționar și să indexați fiecare mesaj după codul de stare corespunzător. Programul dvs. poate folosi apoi aceste mesaje în loc de coduri de stare pentru o mai bună lizibilitate.

statuses = {
200: „Site web disponibilă”,
301: „Redirecționare permanentă”,
302: „Redirecționare temporară”,
404: "Nu a fost gasit",
500: "Internal Server Error",
503: "Serviciu Indisponibil"
}

Crearea unei bucle pentru a verifica starea site-ului web

Pentru a verifica fiecare URL pe rând, veți dori parcurge lista de site-uri web. În interiorul buclei, verificați starea fiecărui site trimițând o solicitare prin biblioteca de solicitări.

pentru url în Website URL:
încerca:
web_response = requests.get (url)
print (url, statuses[web_response.status_code])

cu exceptia:
print (url, statuses[web_response.status_code])

Unde:

  • pentru url...iterează peste lista de adrese URL.
  • url este variabila căreia bucla for îi atribuie fiecărei adrese URL.
  • incearca/cu exceptiase ocupă de orice excepții care pot apărea.
  • web_response este o variabilă care oferă o proprietate cu codul de stare al răspunsului

Întregul fragment de cod

Dacă preferați să revizuiți întregul cod dintr-o singură mișcare, iată o listă completă de coduri pentru referință.

import cereri

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

statuses = {
200: „Site web disponibilă”,
301: „Redirecționare permanentă”,
302: „Redirecționare temporară”,
404: "Nu a fost gasit",
500: "Internal Server Error",
503: "Serviciu Indisponibil"
}

pentru url în Website URL:
încerca:
web_response = requests.get (url)
print (url, statuses[web_response.status_code])

cu exceptia:
print (url, statuses[web_response.status_code])

Și iată un exemplu de rulare a codului:

Capabilitățile de codare ale Python în Web Scraping

Bibliotecile terțe Python sunt ideale pentru sarcini precum scrapingul web și preluarea datelor prin HTTP.

Puteți trimite solicitări automate către site-uri web pentru a efectua diferite tipuri de sarcini. Acestea pot include citirea titlurilor de știri, descărcarea de imagini și trimiterea automată de e-mailuri.