1
Fork 0
This repository has been archived on 2025-06-02. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
2022ST-project-Phikipathia/cgi-bin/stresstest.py
2022-05-19 15:43:18 +02:00

41 lines
1.5 KiB
Python

#!/usr/bin/env python3
"""
Dit script is enkel en alleen bedoeld om heel veel willekeurige pagina's te kunnen testen en
enkel degene eruit te halen die falen (en dus niet correct afgehandeld worden).
"""
from bs4 import BeautifulSoup
import requests
from scraper import converteer, zoek_link
def run(taal, start, stop):
lijst = [converteer(start, True)] if start != 'Special:Random' else []
base = f"https://{taal}.wikipedia.org/wiki/"
while start != stop:
# Dit is het enigste dat we aanpassen.
print(lijst[-1] if len(lijst) != 0 else [])
pagina = requests.get(base + converteer(start, False))
if pagina.status_code != 200:
return {'error': f"Er ging iets fout bij het inladen van '{lijst[-1]}'. Bestaat de website?"}
soep = BeautifulSoup(pagina.content, 'html.parser')
start = converteer(zoek_link(soep))
if start is None:
return {'error': f"Er konden geen nieuwe links meer gevonden worden op '{lijst[-1]}'"}
if start in lijst:
return {'error':
f"Cyclus gedetecteerd op '{start}', startende vanaf '{lijst[0]}'. Het onafgewerkte pad zal niet worden toegevoegd aan het overzicht. "
}
lijst.append(start)
return {'pad': lijst}
antwoord = run('en', 'Special:Random', 'Philosophy')
while 'pad' in antwoord or antwoord['error'].startswith('Cyclus'):
antwoord = run('en', 'Special:Random', 'Philosophy')
print(antwoord['error'])