2014-07-08 3 views
-1

J'utilise Python.org version 2.7 64 bits sur Windows Vista 64 bits. Je suis à la recherche au docs et un exemple de code pour urllib ici:Quel package URLLIB utiliser avec Python

https://docs.python.org/3/howto/urllib2.html ... et en essayant de soumettre le code suivant pour accéder aux données de l'API The Guardian:

from urllib2 import Request, urlopen, URLError 


response = urllib.request.urlopen('http://beta.content.guardianapis.com/search?tag=football%2Fworld-cup-2014&api-key=uexnxqm5bfwca4tn2m47wnhv') 
html = response.read() 
print html 

Ce ne fonctionne pas et est coups de pied l'erreur suivante:

Traceback (most recent call last): 
    File "C:/Python27/stack", line 4, in <module> 
    response = urllib.request.urlopen('http://beta.content.guardianapis.com/search?tag=football%2Fworld-cup-2014&api-key=uexnxqm5bfwca4tn2m47wnhv') 
NameError: name 'urllib' is not defined 

sur adresse de la page pour les documents qu'il pointe vers un sous-répertoire appelé « urllib2 », mais les exemples de code font référence à un module appelé « urllib ». Sur PYPI je ne peux trouver aucune installation pour 'urllib'. Si je viens de lancer l'instruction d'importation, le code s'exécute sans causer d'erreur, mais avec le reste du code ne fonctionne pas.

Quelqu'un peut-il me dire quel module 'urllib' je devrais avoir installé et/ou pourquoi le code produit cette erreur?

Merci

+0

Lisez https://docs.python.org/2.7/howto/urllib2.html pour Python 2.7. –

+0

Vous avez importé le nom 'urlopen', ** pas **' urllib', utilisez donc 'response = urlopen ('...')'. –

+0

Vous avez également lié au HOWTO Python 3, si vous utilisez Python 2, utilisez la documentation de Python 2. –

Répondre

3

Vous utilisez Python 2.7, mais en essayant de suivre un guide pratique pour Python écrit .

Utilisez le correct documentation instead: https://docs.python.org/2/howto/urllib2.html, notez comment l'URL contient un 2, pas 3 et le style de la documentation diffère sensiblement.

Ensuite, vous importez plusieurs noms de le module urllib2:

from urllib2 import Request, urlopen, URLError 

Cela signifie sont aujourd'hui soumis le nom urlopen (avec Request et URLError), de sorte que vous ne faites pas (et peut « t) utilisent le nom du module urllib2 dans votre code:

response = urlopen('http://beta.content.guardianapis.com/search?tag=football%2Fworld-cup-2014&api-key=uexnxqm5bfwca4tn2m47wnhv') 
0

S'il vous plaît utiliser requests ou si vous avez vraiment besoin urllib API, urllib3 qui est livré avec requests.

Tout le reste a beaucoup trop de pièges, par exemple quand il s'agit de ssl.

+0

avez-vous un exemple de syntaxe de ce que vous voulez dire? merci – gdogg371

+0

http://docs.python-requests.org/fr/latest/ –