2010-05-07 5 views
0

J'ai un script qui analyse une page html pour tous les liens qu'il contient. Je les reçois tous bien, mais j'ai une liste de domaines que je veux comparer. Ainsi, une liste d'échantillons contientAnalyse HTML pour les liens de domaine

list=['www.domain.com', 'sub.domain.com'] 

Mais je peux avoir une liste de liens qui ressemblent à

http://domain.com 
http://sub.domain.com/some/other/page 

Je peux dépouiller le http: // très bien, mais dans les deux exemples de liens que je viens posté, ils devraient tous deux correspondre. Le premier que je voudrais faire correspondre à www.domain.com, et le second, je voudrais faire correspondre le sous-domaine dans la liste. À l'heure actuelle, j'utilise url2lib pour analyser le code HTML. Quelles sont mes options dans cette tâche?

+0

Comment décidez-vous si 'domain.com' doit correspondre' contre www.domain. com' ou 'sub.domain.com'? – dhill

+0

À cet effet, je vais avec l'hypothèse s'il n'y a pas de sous-domaine montrant sur le domain.com, de l'associer à www – Nathan

Répondre

2

Vous pouvez envisager de supprimer "www." de la list et de faire quelque chose d'aussi simple que:

url = 'domain.com/' 
for domain in list: 
    if url.startswith(domain): 
     ... do something ... 

Ou d'essayer les deux ne serez blessé ou je Spose:

url = 'domain.com/' 
for domain in list: 
    domain_minus_www = domain 
    if domain_minus_www.startswith('www.'): 
     domain_minus_www = domain_minus_www[4:] 
    if url.startswith(domain) or url.startswith(domain_minus_www): 
     ... do something ... 
+0

startswith devrait faire très bien. Je vous remercie! – Nathan

+1

Échec sur 'domain.com.phisher198313.com'. Utilisez plutôt le module 'urlparse'. –

+0

@max bon point. @hallik, vous pourriez vouloir suivre le conseil de max, mais un concept similaire de bouclage et de suppression du «www». va s'appliquer – dlamotte