Pythonは特にAI分野で注目されているが、他にも様々な種類のプログラムを書くことができる。例えば、Webサーバーなどのネットワークソフトも書ける(図4-1)。

図4-1●ネットワークソフトの開発に使うモジュール
TCP/IPで通信するネットワークソフトをPythonで作る場合は、socketモジュールを使うのが基本だ。HTTP通信を行うソフトの場合は、socketモジュールの代わりにhttp.serverやurllibといったモジュールを使うことで手軽に開発できる。
[画像のクリックで拡大表示]

 TCP/IPで通信するネットワークソフトをPythonで作る場合は、基本的にはsocketモジュールを使う。ただ、HTTP通信を行うソフトの場合は、より手軽に開発できるhttp.serverやurllibといったモジュールが用意されている。

 ここでは、urllibモジュールを使って特定のWebページを取得し、そのWebページから情報を抽出する「Webスクレーピング」に挑戦してみよう(図4-2)。

図4-2●Webスクレーピングを実施した日経 xTECHのトップページ
日経 xTECHのトップページのデータを取得し、そのデータに対して処理を行った。URLはhttps://tech.nikkeibp.co.jp/。
[画像のクリックで拡大表示]

 まず、urllibでどのようにWebページのデータを取得するかを説明する(図4-3)。最初にimport文でurllibのrequestモジュールをインポートする。指定したURLからurlopen関数でリクエストの結果であるレスポンスを取得している。その際にはwith文を使うのがポイントだ。最後の行のprint関数で取得したWebページの内容(HTML)を表示している。

図4-3●urllibでWebページのデータを取得
まず、urllibを使って日経 xTECHのトップページのデータを取得し、printでその内容を表示した。
[画像のクリックで拡大表示]

この先は有料会員の登録が必要です。「日経NETWORK」定期購読者もログインしてお読みいただけます。今なら有料会員(月額プラン)が12月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら