2011-01-03 4 views
1

Je suis nouveau python, donc s'il vous plaît garder avec moi :)Créer automatiquement des liens valides

Je me demandais s'il y a une façon intégrée en python pour ajouter des variables à URL indépendamment de sa structure.

Je voudrais avoir une variable d'URL (test = 1) ajouté à une URL qui pourrait avoir l'une des structures suivantes

http://www.aaa.com (serait tout simplement ajouter "/? Test = 1") à la fin

http://www.aaa.com/home (comme celui ci-dessus, serait tout simplement ajouter "/? test = 1") à la fin

http://www.aaa.com/?location=home (figureraient là de alr Déjà un? utilisé, et ajouterait & test = 1 à la fin)

http://www.aaa.com/?location=home&page=1 (comme celle-ci, figurerait sur il y a déjà? Utilisé, et ajouteraient & test = 1 à la fin)

Je serais heureux d'écrire domething de le faire moi-même, mais si python peut déjà le faire en quelque sorte, je me ferais un plaisir d'utiliser une fonctionnalité intégrée qui me gagner du temps; -)

Merci à l'avance

Répondre

3

En utilisant les deux Lennart Regebro 's et Adam Vendenberg' suggestions s, vous pourriez faire quelque chose comme ceci:

import urllib 
import urlparse 

query=urllib.urlencode({"test":1}) 
urls=['http://www.aaa.com', 
     'http://www.aaa.com/home', 
     'http://www.aaa.com/?location=home', 
     'http://www.aaa.com/?location=home&page=1'] 
for url in urls: 
    x=urlparse.urlparse(url) 
    new_query=(x.query+'&'+query) if x.query else query 
    y=urlparse.urlunparse((x.scheme,x.netloc,x.path,x.params,new_query,x.fragment)) 
    print(y) 

cède

http://www.aaa.com?test=1 
http://www.aaa.com/home?test=1 
http://www.aaa.com/?location=home&test=1 
http://www.aaa.com/?location=home&page=1&test=1 
+0

Génial! C'est ce que je vais faire !!!!! –

Questions connexes