PR

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

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