ich habe vor eine kleine suchmaschine zu schreiben. nun möchte ich von einer start-url ausgehend alle links herausfiltern und in einer liste speichern. anschließend schreibe ich die url als key und die liste der links als value in ein dictionary. anschließend möchte ich wiederum das gleiche machen indem ich die liste im dictinary durchlaufe und auch wieder eine liste aler links erstelle und alles wieder im dictionary speicher. nun besteht aber das problem, dass wenn einige links nicht mehr aktuell sind die verbindung nicht hergestellt werden kann und das erstellen des dictionarys abgebrochen wird. nun müsste man ja irgendwie einen timeout einbauen, damit diese nicht zu erreichenden links nach einer bestimmten zeit übersprungen werden. ich hoffe ihr wisst was ich meine. könnt ihr mir vielleicht einen tipp geben oder mich in dieser hinsicht beraten, wie ich das problem lösen kann? Danke.
Achso hier erstmal mein Code:
Code: Alles auswählen
import re
import urllib
import urlparse
#import socket
zahl = 0
wort = raw_input("Suche nach: ")
url='http://www.chip.de'
text=urllib.urlopen(url).read()
liste = re.findall('<a.*?href="(.*?)".*?>(?uism)', text)
liste = [urlparse.urljoin(url, element) for element in liste]
dic = {url:liste}
for urllist in dic.values():
for element in urllist:
zahl+=1
print zahl
# if dic.has_key(element) != True:
url = element
text=urllib.urlopen(url).read()
liste = re.findall('<a.*?href="(.*?)".*?>(?uism)', text)
liste = [urlparse.urljoin(url, element) for element in liste]
dic[url]=liste