Zo check ik of linkvermeldingen live staan

Bij het beheren van websites of het uitvoeren van digitale marketingcampagnes is het vaak nodig om te controleren of bepaalde links nog steeds werken. Het handmatig controleren van elke link kan tijdrovend zijn. Gelukkig is het mogelijk om dit proces te automatiseren met behulp van Python. In dit stuk laat ik zien hoe je eenvoudig kunt controleren of een link actief is met behulp van een kort Python-script.

Mijn script hiervoor

Om te controleren of een link actief is met Python, kun je gebruik maken van de requests bibliotheek om een HTTP-verzoek naar de gegeven URL te sturen en vervolgens de reactiestatuscode te controleren. Doorgaans geeft een statuscode van 200 aan dat de link actief en bereikbaar is.

import requests

def is_link_actief(url):
try:
reactie = requests.get(url, timeout=10)
# Als je alleen wilt controleren of de server reageert (niet noodzakelijkerwijs met een 200 OK)
# controleer dan gewoon of reactie niet None is
return reactie.status_code == 200
except requests.RequestException:
return False

te_controleren_url = “https://www.voorbeeld.nl”
if is_link_actief(te_controleren_url):
print(f”De link {te_controleren_url} is actief!”)
else:
print(f”De link {te_controleren_url} is niet bereikbaar of inactief.”)

Let op: Wees je bewust van mogelijke problemen bij het te vaak versturen van verzoeken in een korte tijd, aangezien sommige servers je tijdelijk kunnen blokkeren omdat ze denken dat je een bot bent of een DDoS-aanval uitvoert. Wees altijd voorzichtig bij het scrapen of versturen van geautomatiseerde verzoeken naar websites. Zelf houd ik graag een wekelijks verzoek aan, dat is meer dan genoeg hiervoor.

Veelvoorkomende foutcodes

  • 200: Dit is de code voor succesvolle HTTP-verzoeken. Wanneer een server reageert met een 200 code, betekent dit dat de opgevraagde bron correct is opgehaald en doorgezonden naar de client, zoals een webbrowser. Dit is wat je normaal gesproken hoopt te ontvangen wanneer je een webpagina opvraagt.
  • 404: “Pagina niet gevonden” is een HTTP-responscode die aangeeft dat de server de opgevraagde pagina niet heeft kunnen vinden. Deze fout kan optreden als de pagina is verwijderd, de naam van de pagina is gewijzigd of als de pagina tijdelijk niet beschikbaar is.
  • 403: “Verboden” treedt op wanneer de server het verzoek begrijpt, maar weigert het te verwerken. Dit kan betekenen dat de client niet de juiste rechten heeft om toegang te krijgen tot de aangevraagde bron.
  • 500: “Interne serverfout” is een algemene foutcode die aangeeft dat er iets mis is gegaan aan de serverzijde, maar dat de server niet specifieker kan zijn over de exacte aard van het probleem.

Redirects volgen

URL-omleidingen kunnen om vele redenen voorkomen. Het kan zijn dat een website is verhuisd naar een nieuwe domeinnaam, of dat de website-eigenaar wil dat meerdere domeinnamen naar dezelfde homepage verwijzen. Met tools als requests in Python kun je automatisch deze omleidingen volgen en zo de eindbestemming van een URL bepalen.

Performance monitoring

Performance is cruciaal voor de gebruikerservaring op websites. Een tragere website kan leiden tot een hoger bouncepercentage, wat negatieve gevolgen kan hebben voor zoekmachine rankings. Met behulp van Python kan je niet alleen controleren of een link actief is, maar ook hoe snel de pagina laadt, wat waardevolle informatie oplevert over de algehele prestaties van een site.

Robots.txt respecteren

Dit bestand dient als een soort ‘gids’ voor webcrawlers en scrapers, waarmee website-eigenaren kunnen aangeven welke pagina’s wel of niet mogen worden gecrawld. Als je geautomatiseerde verzoeken naar een site stuurt, is het essentieel om dit bestand te controleren en te respecteren om zowel technische als ethische redenen.

Gebruik van Proxies

Een proxyserver fungeert als een tussenstation tussen de gebruiker en het internet. Door verzoeken via een proxy te sturen, kun je je echte IP-adres verbergen. Dit kan nuttig zijn om IP-gebaseerde beperkingen te omzeilen, maar het is essentieel om proxies op een ethische manier te gebruiken en misbruik te vermijden.

Planning

Geautomatiseerde taken, zoals het regelmatig controleren van duizenden links, vereisen zorgvuldige planning. Het is belangrijk om de impact van je verzoeken op de doelservers te minimaliseren, om overbelasting te voorkomen. Door deze taken tijdens daluren uit te voeren, kan je potentiële verstoringen en overbelasting verminderen. Zoals besproken hanteer ik graag een periodieke interval van één week.

Met deze uitgebreide overwegingen kun je zorgvuldiger en effectiever te werk gaan bij het controleren en beheren van links, terwijl je de best practices in acht neemt.