次のようなコードを書きたいと思いました。
from bs4 import BeautifulSoup
import urllib2
url = 'http://www.thefamouspeople.com/singers.php'
html = urllib2.urlopen(url)
soup = BeautifulSoup(html)
しかし、urllib3
パッケージを今すぐインストールする必要があることがわかりました。
さらに、上記のコードを書き換える方法を理解するためのチュートリアルや例が見つかりませんでした。たとえば、urllib3
にはurlopen
がありません。
説明や例はありますか?!
P/S:python 3.4を使用しています。
urllib3は、urllibおよびurllib2とは異なるライブラリです。標準ライブラリのurllibには、接続の再利用など、必要に応じて多くの追加機能があります。ドキュメントはこちらです: https://urllib3.readthedocs.org/
Urllib3を使用する場合は、pip install urllib3
が必要です。基本的な例は次のようになります。
from bs4 import BeautifulSoup
import urllib3
http = urllib3.PoolManager()
url = 'http://www.thefamouspeople.com/singers.php'
response = http.request('GET', url)
soup = BeautifulSoup(response.data)
urllib3
をインストールする必要はありません。ニーズに合ったHTTPリクエスト作成ライブラリを選択し、BeautifulSoup
に応答をフィードできます。ただし、豊富な機能セットと便利なAPIのため、通常は requests
を選択します。コマンドラインにpip install requests
と入力すると、requests
をインストールできます。基本的な例を次に示します。
from bs4 import BeautifulSoup
import requests
url = "url"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
新しいurllib3ライブラリにはNiceドキュメントがあります here
目的の結果を得るには、次のようにします。
Import urllib3
from bs4 import BeautifulSoup
url = 'http://www.thefamouspeople.com/singers.php'
http = urllib3.PoolManager()
response = http.request('GET', url)
soup = BeautifulSoup(response.data.decode('utf-8'))
「decode utf-8」の部分はオプションです。私が試したとき、それなしで機能しましたが、とにかくオプションを投稿しました。
出典: ユーザーガイド