Das kann man immer wieder gut gebrauchen: Die Überprüfung ob eine Zeichenkette eine korrekte URL ist.
def is_valid_url(url):
"""Check des String url"""
validUrl = """
^(http|https)://[a-z0-9]+([-.]{1}[a-z0-9]+)*.[a-z]{2,5}(([0-9]{1,5})?/?.*)$"""
if re.match(validUrl, url):
return True
else:
return False
Um eine völlige Sicherheit zu erreichen, müsste man die TLD in einem zweiten Schritt gegen eine Datenbank mit gültigen TLD laufen lassen.
(Gibt es für die Problemstellung nicht auch eine "eingebaute" Lösung?)
Ich habe gerade keine Zeit, mit das Modul genauer anzusehen - für den ein oder anderen mag es aber brennend interessant sein: Auf Pediapress findet sich Python Code, mit dem Wikipedia (und alle Media Wikis) geparst, die Inhalte geholt, verarbeitet, als PDF ausgegeben ... werden können. Es stehen sogar Tools bereit, um Wikipedia Bücher zu produzieren.
Der Link dazu und viel Spass beim experimentieren.
Beim Stöbern nach neuen Python-Modulen zum Geo-Targeting auf eine interessante Lösung gestoßen, die ich in einer ruhigen Minute (oh, ja ;) ) ausprobieren möchte. Für einen SEO kann es höchst interessant sein, in welchem Land sich ein Server befindet. (Nicht nur Google betreibt Geo-Targeting bis zum Exzess.)
Die Firma MaxMind stellt verschiedene Datenbanken in unterschiedlichen Lizenz-Modellen zur Verfügung, eine unter der Open Source Lizenz GPL. Das Interface unterstützt natürlich Python.
Live Ausprobieren:
In der kostenpflichtigen Version können sogar Netzwerke größerer Organistionen aufgelöst werden. Mir reicht jedoch wahrscheinlich die Aktualität und Umfang der Open Source Variante.
What´s that Site running? Die Antwort auf diese Frage hat Netcraft groß gemcht. Dabei reichen ein paar Zeilen in Phython aus und schon weiss man, welcher Server hinter einer Site werkelt:
>>> import urllib2
>>> info = urllib2.urlopen("http://www.rentaseo.de")
>>> print info.info()
Diese konkrete Anfrage liefert folgende Infos:
Date: Sun, 01 Jun 2008 22:18:58 GMT
Server: Apache/2.0.54 (Linux/SUSE)
X-Powered-By: PHP/4.4.0
Set-Cookie: PHPSESSID=d05d22804f9f9a347b494a0cf1ad3594; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
X-Pingback: http://www.rentaseo.de/xmlrpc.php
Content-Type: text/html; charset=UTF-8
Connection: close