web-dev-qa-db-ja.com

python 3のurllibでURLを開く

sunlight FoundationからこのAPIのURLを開き、jsonのページからデータを返そうとしています。これは、Iapiが生成したコードから、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

私は何が間違っていますか? ive https://docs.python.org/3/library/urllib.request.html を調査しましたが、まだ進歩していません

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
25
styvane

In Python 3この方法で実装できます:

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

注意:一部IDE can import urllib(スパイダー)直接、一部はimport urllib.request(PyCharm)。

これは、必要な部分を明示的にインポートする必要がある場合があるため、その一部だけを必要とする場合にモジュールがすべてをロードする必要がないためです。

これが役立つことを願っています。

7
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)
2
Arnav Singh

urllib.requestはモジュールですが、urlopenは関数です。このリンクを確認してください。疑問を解消するのに役立ちます。 https://docs.python.org/3.0/library/urllib.request.html

1
Fazil Ahmed