# Importieren der Funktionen aus BeautifulSoup
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup, Tag
import bs4
Interne_Links = [] #Listen, um Links geordnet zu speichern.
Links = []
usedurl = []
startpage = "
https://justiz.de/bundlaender/bund/index.php" # Url welche gescrapet werden soll.
url = "
https://justiz.de" # Basis url die nachher mit den seiteninternen Links "addiert" wird, um vollständige Links zu erhalten.
def Linkfinder(page):
uClient = uReq(page) # Web scraping : Seite öffnen,download, Verbindung trennen.
page_html = uClient.read()
uClient.close
page_soup = soup(page_html,"html.parser") # Bs4 anwenden, um Seite durchsuchen zu können.
# Verarbeitung
containers = page_soup.findAll("a") # Alle "a Tags" (html) finden.
for item in containers: # Für jeden html Tag (fals vorhanden) den href greifen.
link = item.get('href')
if link != None and not "@" in link:: # Wenn ein href vorhanden ist, kein none zurückgegeben wurde, entwerder :
if link[0:5] == "../.." : # 1. wenn die ersten 5 Zeichen des href "../.." sein sollten, diese enfernen,
# und mit der basis url "addieren", um diese ,der liste "Interne_Links", hinzufügen.
Interne_Links.append(url+link[5:])
else:
Links.append(link) # 2. Wenn die ersten Zeichen den Links NICHT "../.." sein sollten, wird dieser der Liste "Links" hinzufügen
usedurl.append(page)
Linkfinder(startpage)
for page in Interne_Links:
if not page in usedurl:
Linkfinder(page)
# Ausgabe
print("Links")
print(Links)
print(20*"-")
print("Seiten interne Links")
print(Interne_Links)
Ich hätte eine Frage an euch erfahrene Programmierer:
Wie kann ich in den Linkfinder einbauen, dass dieser in die tiefe geht. Also als Beispiel: Das Programm holt sich einen Link aus einer Seite, und geht diesen Links drei nach. Danach hört er auf. Damit man kein ewiges Monster erschafft.
Hoffe ihr habt die Beschreibung verstanden
, wenn nicht fragt einfach nach