1
Fork 0

Grote push

This commit is contained in:
Tibo De Peuter 2022-05-19 19:45:43 +02:00
parent 59a757c72a
commit 63dd187fb4
6 changed files with 112 additions and 75 deletions

View file

@ -5,37 +5,15 @@ Dit script is enkel en alleen bedoeld om heel veel willekeurige pagina's te kunn
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}
from scraper import run
antwoord = run('en', 'Special:Random', 'Philosophy')
langste = antwoord
while 'pad' in antwoord or antwoord['error'].startswith('Cyclus'):
if 'error' not in antwoord and len(langste['pad']) < len(antwoord['pad']):
langste = antwoord
print(f"Langste pad (lengte {len(langste['pad'])}), van {langste['pad'][0]} naar {langste['pad'][-1]}")
antwoord = run('en', 'Special:Random', 'Philosophy')
print(antwoord['error'])
print('Er ging iets mis:', antwoord['error'])