Pythonのurllibモジュールの使い方を現役エンジニアが解説【初心者向け】
初心者向けにPythonのurllibモジュールの使い方について解説しています。URLを開いて内容を取得したりするモジュールになっています。サンプルでは指定のアドレスにアクセスして内容を取得しています。スクレイピングなどに応用することが出来ます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Pythonのurllibモジュールの使い方について解説します。
そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。
今回は、Pythonに関する内容だね!
どういう内容でしょうか?
urllibモジュールの使い方について詳しく説明していくね!
お願いします!
urllibモジュールとは
urllibはURLを扱う幾つかのモジュールを集めたパッケージで、以下4つで構成されています。
- urllib.request URLを開いて読むモジュール
- urllib.parse URLをパースするためのモジュール
- urllib.error urllib.requestの発生させる例外を含むモジュール
- urllib.robotparser robots.txtファイルをパースするためのモジュール。
この記事では、利用頻度の高い前者2つを中心に解説します。
urllibモジュールの使い方
モジュールをインポートした後、用途に応じてメソッドを呼び出します。
import urllib.request import urllib.parse urllib.request.urlopen(...) urllib.parse.urlparse(...)
メソッドを何度も呼び出す場合は、from import構文を使うのもよいです。
from urllib.request import urlopen from urllib.parse import urlparse urlopen(...) urlparse(...)
詳細は公式のリファレンスを参照してください。
実際に書いてみよう
サンプルコード
Webサイトにアクセスし、内容をoutput.htmlファイルに保存するプログラムです。
import urllib.request with urllib.request.urlopen('http://www.example.org') as f: with open('output.html', 'w') as g: print(f.read().decode(), file=g)
実行結果
カレントディレクトリにoutput.htmlファイルが保存されました。
解説
最初にurllib.requestモジュールをインポートしました。
urlopenでWebサイトの中身を読み込みました。また、output.htmlファイルを書き込みモードで開きました。
レスポンスをreadメソッドで読み出し、ファイルに出力しました。
サンプルコード
import urllib.parse result = urllib.parse.urlparse('http://www.example.org/path/to/file.html?abc=123&def=456') print(result.scheme) print(result.netloc) print(result.path) print(result.query)
実行結果
http www.example.org /path/to/file.html abc=123&def=456
解説
最初にurllib.parseモジュールをインポートしました。次にurlparseメソッドで、URLを解析しました。
scheme, netloc, path, queryを参照することで、スキーム、FQDN、パス、クエリ文字列を取得できることを確認できました。
監修してくれたメンター
橋本紘希
システムインテグレータ企業勤務のシステムエンジニア。 開発実績: Javaプログラムを用いた業務用Webアプリケーションや、基幹システム用バッチアプリケーションなどの設計構築試験。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。
挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。