Obtenir le domaine racine du lien
J'ai un lien tel que http://www.techcrunch.com/ et je voudrais, pour obtenir l'techcrunch.com le cadre de la liaison. Comment puis-je aller à ce sujet en python?
source d'informationauteur Gavin Schulz
Vous devez vous connecter pour publier un commentaire.
Obtenir le nom d'hôte est assez facile à l'aide de urlparse:
Obtenir le "domaine racine", cependant, va être de plus en plus problématique, car il n'est pas défini dans un sens syntaxique. Quel est le domaine racine de "www.theregister.co.uk"? Comment à propos des réseaux à l'aide de domaines par défaut? "devbox12" pourrait être un nom d'hôte valide.
Une façon de gérer ce qui serait d'utiliser la Public Liste De Suffixesqui tente de catalogue à la fois réel domaines de premier niveau (par exemple ".com", ".net", ".org") ainsi que des domaines privés qui sont utilisé comme Tld (par exemple ".co.royaume-uni" ou même ".github.io"). Vous pouvez accéder à la LSIP de Python à l'aide de la publicsuffix2 bibliothèque:
Structure générale de l'URL:
Comme TIMTOWTDI devise:
À l'aide de urlparse,
À l'aide de tldextract
dans votre cas:
Plus! 🙂
Script suivant n'est pas parfait, mais peut être utilisé pour l'affichage/le raccourcissement des fins. Si vous voulez vraiment ou besoin, pour éviter un 3ème partie dépendances - surtout à distance de l'extraction et de la mise en cache de certains tld données que je peux vous suggérer script suivant que j'utilise dans mes projets. Il utilise deux dernières parties de domaine à la plupart des extensions de nom de domaine et laisse trois dernières parties pour le reste de la moins connue extensions de nom de domaine. Dans le pire des cas domaine sera divisée en trois parties au lieu de deux:
______ À l'aide de Python 3.3 et pas 2.x________
Je voudrais ajouter une petite chose pour Ben en Blanc de la réponse.
Maintenant, je viens de recevoir le nom de domaine de urlparse.
Pour supprimer les sous-domaines vous avez tout d'abord besoin de savoir quels sont les Domaines de Haut Niveau et qui ne le sont pas. E. g. dans le ci-dessus
http://twitter.co.uk
-co.uk
est un TLD tandis que danshttp://sub.twitter.com
nous avons seulement.com
en tant que TLD etsub
est un sous-domaine.Donc, nous avons besoin d'obtenir un fichier/liste qui a toutes les tld.
tlds = load_file("tlds.txt") #tlds holds the list of tlds
Cela a fonctionné pour mes fins. J'ai pensé que je devais le partager.