web-dev-qa-db-fra.com

ouvrir une url avec urllib en python 3

j'essaie d'ouvrir l'URL de cette API à partir de la fondation sunlight et à renvoyer les données de la page au format json. c'est le code que j'ai produit, moins les parenthèses autour de myapikey.

import urllib.request.urlopen
import json

urllib.request.urlopen("https://sunlightlabs.github.io/congress/legislators?api_key='(myapikey)")

et im obtenir cette erreur

Traceback (most recent call last):
  File "<input>", line 1, in <module>
ImportError: No module named request.urlopen

qu'est-ce que je fais mal? ive recherché dans https://docs.python.org/3/library/urllib.request.html et toujours pas de progrès

Vous devez utiliser from urllib.request import urlopen. Je vous suggère également d'utiliser l'instruction with lors de l'ouverture d'une connexion.

from urllib.request import urlopen

with urlopen("https://sunlightlabs.github.io/congress/legislators?api_key='(myapikey)") as conn:
    # dosomething
19
styvane

En Python 3, vous pouvez implémenter cela de cette façon:

import urllib.request
u = urllib.request.urlopen("xxxx")#The url you want to open

Faites attention: Certains IDE peuvent import urllib (Spyder) directement, tandis que d'autres doivent import urllib.request (PyCharm).

En effet, il est parfois nécessaire d'importer explicitement les éléments souhaités, de sorte que le module n'a pas besoin de tout charger lorsque vous en voulez juste une petite partie.

J'espère que cela aidera.

6
Lyn
from urllib.request import urlopen
from bs4 import BeautifulSoup

wiki = "https://en.wikipedia.org/wiki/List_of_state_and_union_territory_capitals_in_India"

page = urlopen(wiki)
soup =  BeautifulSoup(page, "html.parser" ).encode('UTF-8')

print (soup)
1
Arnav Singh

urllib.request est un module alors que urlopen est une fonction . consultez ce lien, il peut vous aider à dissiper vos doutes .https://docs.python.org/3.0/library/urllib.request .html

0
Fazil Ahmed