Pythonのmechanizeモジュールのインストールと利用方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonのmechanizeモジュールのインストールと利用方法について現役エンジニアが解説しています。mechanizeとは、クローリングを行うためのPythonライブラリです。pipコマンドでインストールし、インポートして使います。クローリングしてWebサイトの情報を取得してみましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Pythonのmechanizeモジュールのインストールと利用方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプ、Python講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonのmechanizeモジュールのインストールと利用方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

mechanizeとは?

mechanizeとは、クローリングを行うためのPythonライブラリです。

クローリングとは、Webサイトから情報を抽出する技術のことです。スクレイピングと並べられることがありますが、クローリングは指定したページを巡回(クロール)し、対象ページのデータ収集を行います。

一方でスクレイピングは、HTMLなどのコンテンツを取得しその中から必要なデータを収集します。これらの手法を行うことで情報収集を自動化させることができるので、機械学習などで大量のデータを集めたいときに便利な手法です。

便利ではありますが、ウェブサイトによっては悪質なスクレイピングやクローリングを防ぐために無断でスクレイピング、クローリングを行うことを禁止にしているサイトも実際に存在します。

Twitterがその代表例です。そのようなサイトでスクレイピング、クローリングを行うと違反行為として、罰則を受けたり、法的措置を取られることもあるので、ルールと節度を守って行いましょう。

mechanizeのインストール

mechanizeは以下のpipコマンドでインストールが可能です。

pip install mechanize

 

[PR] Pythonで挫折しない学習方法を動画で公開中

mechanizeの使い方

以下の1行でモジュールをインポートできます。

import mechanize

以下の1行でブラウザオブジェクトを定義します。

br = mechanize.Browser()

つづいて以下の1行でクローリングするサイトのリンクを定義します。

br.open("http://www.example.com/")

以下の1行で先程定義したサイトのタイトルバーのタイトルを出力します。

print(br.title())

また、サイトの中身を確認するときは以下の1行で取得できます。

print(br.read())

さらにサイト内のリンクの中で正規表現で定義した文字列のリンクをアクセスするには以下の1行で実行可能です。これはアクセスしたリンク先でbr.open()したときと同じ挙動になります。

response1 = br.follow_link(text_regex="info")

 

mechanizeモジュールを利用してクローリングしてみよう

それでは実際にクローリングを試してみましょう。今回は誰が使っても問題のないドメインを使用してクローリングを行うためにexample.comを使用します。以下のソースコードをコピーして、任意のフォルダーに保存します。

import re
import mechanize
br = mechanize.Browser()
br.open("http://www.example.com/")
response1 = br.follow_link(text_regex="info")
print(br.title())
print(response1.geturl())
print(response1.info())  # headers
print(response1.read())  # body

実行するとexample.comの中からinfoの文字列が含まれるリンクにアクセスしてそのリンク先のタイトルとリクエストヘッダー、そして中身のHTMLを出力します。

長いので実行結果については省略します。

まとめ

今回はmechanizeを使ってPythonのクローリングを紹介しました。

知っていると便利ですが、試してお分かりいただけた通りクローリング中はサーバーにアクセスして通信を行っているので、そのことを踏まえて悪質なクローリングはしないようにしましょう。

監修してくれたメンター

メンター三浦

モバイルゲームを運用している会社のエンジニアをしています。趣味でWEB開発やクラウドコンピューティングもやっており、ソフトもハードもなんでもやります。

TechAcademyジュニアではPythonロボティクスコースを担当しています。好きな言語はPython, Node.js。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できる、オンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。