Si vous vous retrouvez souvent à récupérer des données sur des sites Web, vous devriez probablement envisager d'automatiser le processus. Parfois appelé « web scraping », le processus est courant pour les sites qui ne fournissent pas d'API ou de flux formels. Bien sûr, vous n'irez nulle part si le site que vous essayez de récupérer n'est pas disponible.

Si vous gérez votre propre site, vous avez probablement déjà dû faire face à des temps d'arrêt. Cela peut être frustrant, vous faire perdre des visiteurs et interrompre toute activité dont votre site pourrait être responsable. Dans de telles circonstances, il est avantageux de pouvoir vérifier facilement la disponibilité de votre site Web.

Python est un excellent langage pour les scripts, et sa syntaxe concise mais lisible fait de la mise en œuvre d'un vérificateur de site une tâche simple.

Création de votre vérificateur de site Web personnalisé

Le vérificateur de site Web est conçu sur mesure pour accueillir plusieurs sites Web à la fois. Cela vous permet de changer facilement de sites dont vous ne vous souciez plus ou de commencer à vérifier les sites que vous lancerez à l'avenir. Le vérificateur est une "application squelette" idéale sur laquelle vous pouvez développer davantage, mais il démontre une approche de base pour récupérer des données Web.

instagram viewer

Importer des bibliothèques en Python

Pour lancer le projet, vous devez importer le demandes bibliothèque en Python avec la importer fonction.

importer demandes

La bibliothèque Requests est utile pour communiquer avec les sites Web. Vous pouvez l'utiliser pour envoyer des requêtes HTTP et recevoir des données de réponse.

Stocker les URL du site Web dans une liste

Une fois que vous avez importé la bibliothèque, vous devez définir et stocker les URL du site Web dans une liste. Cette étape vous permet de conserver plusieurs URL, que vous pouvez vérifier avec le vérificateur de site Web.

importer demandes

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

La variable URL de site web stocke la liste des URL. Dans la liste, définissez chaque URL que vous souhaitez vérifier en tant que chaîne individuelle. Vous pouvez utiliser les exemples d'URL dans le code à des fins de test ou vous pouvez les remplacer pour commencer immédiatement à vérifier vos propres sites.

Ensuite, stockez les messages pour Codes de réponse HTTP. Vous pouvez les conserver dans un dictionnaire et indexer chaque message par son code d'état correspondant. Votre programme peut alors utiliser ces messages à la place des codes d'état pour une meilleure lisibilité.

statuts = {
200: "Site Web disponible",
301: "Redirection permanente",
302: "Redirection temporaire",
404: "Pas trouvé",
500: "Erreur interne du serveur",
503: "Service indisponible"
}

Création d'une boucle pour vérifier l'état du site Web

Pour vérifier chaque URL à tour de rôle, vous voudrez parcourir la liste de sites Web. À l'intérieur de la boucle, vérifiez l'état de chaque site en envoyant une requête via la bibliothèque de requêtes.

pour URL dans URL de site web:
essayer:
web_response = demandes.get (url)
print (url, statuts[web_response.status_code])

à l'exception:
print (url, statuts[web_response.status_code])

Où:

  • pour l'URL...itère sur la liste des URL.
  • URL est la variable à laquelle la boucle for affecte chaque URL.
  • essayer/saufgère toutes les exceptions cela peut survenir.
  • web_response est une variable qui fournit une propriété avec le code d'état de la réponse

L'intégralité de l'extrait de code

Si vous préférez passer en revue l'intégralité du code en une seule fois, voici une liste complète de codes à titre de référence.

importer demandes

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

statuts = {
200: "Site Web disponible",
301: "Redirection permanente",
302: "Redirection temporaire",
404: "Pas trouvé",
500: "Erreur interne du serveur",
503: "Service indisponible"
}

pour URL dans URL de site web:
essayer:
web_response = demandes.get (url)
print (url, statuts[web_response.status_code])

à l'exception:
print (url, statuts[web_response.status_code])

Et voici un exemple d'exécution du code :

Capacités de codage de Python dans le Web Scraping

Les bibliothèques tierces de Python sont idéales pour des tâches telles que le grattage Web et la récupération de données via HTTP.

Vous pouvez envoyer des demandes automatisées à des sites Web pour effectuer différents types de tâches. Celles-ci peuvent inclure la lecture de titres d'actualités, le téléchargement d'images et l'envoi automatique d'e-mails.