открытие 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