Udemyの今西さんの”PythonによるWebスクレイピング 入門編を受けましたので、内容について紹介します。
【記事の対象者】
・Pythonでスクレイピングを行う方法について知りたい
・スクレイピングを行う前のPCの設定方法を知りたい
・Seleniumってなにかわからない
最近よく聞く、Webスクレイピングって何ですか?
WebスクレイピングはWebページのHTMLから、必要な情報を取得、整形・解析することを言います。スクレイピングができると、Pythonを使ってWeb上から株価・会社の利益・人気の観光地等、様々なデータが収集することができるから、かなり重要になっているんだよ。
Webスクレイピングができたら、Newsで話題になっていることや人気のワードなども分析できたりしそうですね。
そうだね。だから、マーケティングやコンサル業界でもこれらは必須になってきているんだよ。今回はスクレイピングの内容とPythonを用いて、Webページまで入る方法について紹介するよ。
スクレイピングとクローリングの違いについて
スクレイピングとはhtml情報から特定の情報のみ取得し、整形や解析することをいう。
スクレイピングとは何らかのデータ構造から情報を削りとり、設定した情報を抽出することを言います。Webスクレイピングは、一般的にWeb上のhtmlから情報を削り取り、重要な情報を抽出することを指しています。
クローリングとは、Webサイトの巡回とhtml情報の収集することをいう。
Webページのリンクをたどり、Webページ上の情報を収集することを指しています。ですので、違いとしては、スクレイピングは重要情報のみを取得する、整形や解析したことを意味しています。
Webスクレイピングがどのようなことに使用されているのか?
マーケティング部門で使用すると
Web上から、製品の価格情報や売れ筋を調査することで、現在の市況や競合他社情報がわかり、今後の製品開発へフィードバックすることができます。
サービス部門で使用すると
求人情報をスクレイピングすると、全体の市況感や人気の業種を把握することができます。これらから、今後はやりそうな分野を推測することができます。また、ホテル情報をスクレイピングすると、人気の価格帯やスポットを調査することができます。これらから、最近人気となっているプランなども調査し、把握することができます。
こんな感じで様々なことに使用することができます。個人的には、今後Pythonを使用して、英語新聞の情報を取得し、頻繁に使用されるワードから英単語帳を作り、英語勉強用アプリ開発等を進めたいと思っています。
ただし、Web上のhtml情報には製作者の著作権等もあり、法的問題に発展する恐れもありますので、使用する際には十分注意をしましょう。
Webスクレイピングの設定をしてみた
ではWebスクレイピングの設定をしてみましょう。前提条件として、Pythonとanacondaはすでにインストールされているものとして話を進めていきます。まず、Seleniumとpillowのライブラリ設定を行っていきます。
Anaconda prompt(またはWindows power shellでgoogleを開く
まずコマンドプロンプトの使用方法について紹介いたします。
事前勉強 CUIの操作方法について
最近はGUIが主流となっていますが、CUIの操作方法について説明します。CUIはCharacter User Interfaceの略で文字列のコマンド入力でコンピュータの操作を行います。GUIでは、マウスを使用してクリック等画面上で操作できますよね。
コマンド | 内容 |
ls | ファイル一覧を表示 |
cd <ディレクトリ名> | ディレクトリ移動 |
cd .. | 1つ上の階層(ディレクトリ)に移動 |
pwd | 現在のディレクトリの確認 |
mkdir | ディレクトリ作成(フォルダ作成のイメージ) |
まずは、デスクトップ上に【Work】というフォルダをCUIを使用して作成しましょう。こんな感じでディレクトリの作成と移動を使用し、デスクトップ上にWorkのフォルダを作成します。
seleniumとpillowのインストールをおこなう
Webスクレイピングとに必要となる、Seleniumとpillowのインストールが必要になりますので、導入します。
Selenium :Webアプリケーションをテストするためのもの
pillow :画像処理を行う場合に用いられるライブラリ
pip install seleniumと入力し、Enter
PS C:\Users\HP\desktop> cd work
PS C:\Users\HP\desktop\work> pip install selenium
pip install pillowと入力し、Enter
PS C:\Users\HP\desktop\work> pip install pillow
インストールが完了しましたら次の操作に移ります。
PythonでChromeを使ってホームページを開いてみる
Jupyter notebookを開く
workのディレクトリでJupyter notebookを起動します。
上記コマンドを入力すると、Jupyter notebookが起動されます。起動したら、New(Python3)を選択し、新しいノートを開きます。Untitledをクリックし、新しいノートの名前を付けます。今回は【環境】とつけました。
次にwebdriverをインポートします。下記入力を押したあと、Shift+Enterを押します。
・from selenium import web driver
次に、chromedriver.exeをインストールしましょう。下記ファイルでダウンロードをします。わたしのPCではこちらのバージョンを使用しました。
(Index of /86.0.4240.22/)
https://sites.google.com/a/chromium.org/chromedriver/downloads
上記サイトからダウンロードしてください。
ダウンロードしたら、このexeファイルをJupyter notebookにuploadを行います。uploadを選択し、chromedriver.exeを選択します。これで、設定完了です。
インストールしたら、環境のノートで下記入力し、shift+Enterをおします。
・brower=webdriver.Chrome()
入力すると、Chromeが起動されます。これだけで、Chromeの起動までが終わりました。CUIを使用してChromeの立ち上げまでができましたので、これからホームページへの移動をしていきます。
ホームページへの移動方法はこちらのコマンドになります。非常に簡単にホームページまでの移動を行うことができました。
・browser.get(‘URL’)
今回はURLにhttps://www.yahoo.co.jp/と入力してみます。
すると、google chromeの画面がヤフーのページに変わり、ホームページにアクセスされていることを確認しました。このように、Pythonを用いて、Webを開くことまでできました。今後、これらのサイトにアクセスして、情報を収集する方法を紹介したいと思います。