2010-07-31 12 views
1

Avec ce code, urllib2 faire une requête GET:Problème pour une requête GET et spoof User-Agent dans urllib2

#!/usr/bin/python 
import urllib2 
req = urllib2.Request('http://www.google.fr') 
req.add_header('User-Agent', '') 
response = urllib2.urlopen(req) 

Avec celui-ci (ce qui est presque le même), une requête POST:

#!/usr/bin/python 
import urllib2 
headers = { 'User-Agent' : '' } 
req = urllib2.Request('http://www.google.fr', '', headers) 
response = urllib2.urlopen(req) 

Ma question est: comment puis-je faire une requête GET avec le second style de code?

La documentation (http://docs.python.org/release/2.6.5/library/urllib2.html) dit que

têtes

devrait être un dictionnaire et seront traités comme si add_header() était appelé à chaque clé et valeur arguments

Oui, sauf que pour utiliser le en-têtes paramètre, vous devez passer données, et lorsque les données sont transmises, la demande devient un P OST.

Toute aide sera très appréciée.

+0

@ bibop554, je vous recommande de jeter un oeil à 'httplib2' beaucoup plus facile à manipuler alors' urllib2'. http://code.google.com/p/httplib2/ – Anders

Répondre

4

Utilisation:

req = urllib2.Request('http://www.google.fr', None, headers) 

ou:

req = urllib2.Request('http://www.google.fr', headers=headers) 
+1

parfait, merci – user368507