открытие url-адреса с помощью urllib в python 3
Я пытаюсь открыть URL-адрес этого API из sunlight foundation и вернуть данные со страницы в json. это код, который я произвел, минус, скобки, myapikey.
import urllib.request.urlopen
import json
urllib.request.urlopen("https://sunlightlabs.github.io/congress/legislators?api_key='(myapikey)")
и я получаю эту ошибку
Traceback (most recent call last):
File "<input>", line 1, in <module>
ImportError: No module named request.urlopen
что я делаю не так? я исследовал в https://docs.python.org/3/library/urllib.request.html и до сих пор нет
4 ответов
вам нужно использовать from urllib.request import urlopen
, также я предлагаю вам использовать with
оператор при открытии соединения.
from urllib.request import urlopen
with urlopen("https://sunlightlabs.github.io/congress/legislators?api_key='(myapikey)") as conn:
# dosomething
в Python 3 Вы можете реализовать это следующим образом:
import urllib.request
u = urllib.request.urlopen("xxxx")#The url you want to open
обратите внимание:
Некоторые IDE могут import urllib
(Spyder) напрямую, в то время как некоторым нужно import urllib.request
(PyCharm).
это потому, что вам иногда нужно явно импортировать части, которые вы хотите, поэтому модулю не нужно загружать все, когда вы просто хотите небольшую его часть.
надеюсь, это поможет.
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)
urllib.request
является модулем, тогда как urlopen
функция.
проверить эту ссылку, она может помочь вам очистить ваши сомнения.
https://docs.python.org/3.0/library/urllib.request.html