Le pycurl est un emballage très fin pour libcurl. Si vous pouvez le faire avec libcurl, vous pouvez le faire avec pycurl. (La plupart du temps.)
Par exemple:
pycurl.setopt correspond à curl_easy_setopt dans libcurl, où l'option est spécifiée avec le CURLOPT_ * constantes dans libcurl, sauf que le préfixe CURLOPT_ a été supprimé.
Voir: http://pycurl.sourceforge.net/doc/curlobject.html
Cela étant dit, l'option curl -d
est pour l'envoi de requêtes HTTP POST ... pas le style GET votre exemple montre.
libcurl s'attend à ce que les URL qu'il recive soient déjà codées en URL. Utilisez simplement http://docs.python.org/library/urllib.html si nécessaire.
L'exemple d'URL de votre question comporte déjà 2 paramètres (userId et page).
En général, le format est: URL suivi d'un «point d'interrogation», suivi de paires nom = valeur jointes par un symbole d'esperluette. Si le nom ou la valeur contient des caractères spéciaux, vous devrez les encoder en pourcentage.
Il suffit d'utiliser la fonction urlencode:
>>> import urllib
>>> params = [('name1','value1'), ('name2','value2 with spaces & stuff')]
>>> pairs = urllib.urlencode(params)
>>> fullurl = 'http://status.dummy.com/status.json' + '?' + pairs
>>> print fullurl
http://status.dummy.com/status.json?name1=value1&name2=value2+with+spaces+%26+stuff
>>>
Aussi, voir la fonction urllib.urlopen
. Peut-être que vous n'avez pas besoin de boucle du tout? (Mais je ne connais pas votre application ...)
Espérons que cela aide. Si oui, cochez la case et faites-le moi savoir. :-)
Est-ce que vous essayez de faire une demande de publication? (vous mentionnez l'option -d) – cyraxjoe