【完全版】Pyhonのスクレイピングで1日を26時間にする

Pythonのスクレイピングでできることは、「収集」と「整理」、そして整理された情報から「分析」ができます。例えばこんなもの。

  • 必要なキーワードに合致する情報を「収集」し、「整理」してCSVファイルにまとめる
  • 特定のウェブサイトから必要な情報を「収集」し、「整理」してCSVファイルにまとめる
  • SNSのリツイート数やコメント数を一覧で「取得」し、多い順に「整理」できる

日々の面倒な業務から、全て解放してくれるのが、pythonスクレイピングです。

スクレイピングとは

「収集」と「整理」を併せ持つ機能です。

似たような言葉で「クローリング」とありますが、クローリングは「収集」の機能を持つ言葉で、似ているようで異なります。

pythonの優れている点が、非常に簡単なコードで複雑なスクレイピングができるという点です。

pythonのスクレイピングの活用事例

日々のルーティーンワークの業務効率化や、データ収集・分析などのアナリストに最適な方法がpythonのスクレイピングです。

イメージしやすいように、実際にpythonのスクレイピングが活用されるかをみていきます。

Amazonや楽天の必要な商品情報の取得

物販やせどりをやっている方であれば、商品のアラート機能を使っていると思います。

商品と金額を指定して、条件に合致した商品が出品された場合に通知してくれる機能です。

そんな通知機能を、CSVファイルなどにダウンロード可能な状態で使用することができます。

SNSのバズ情報のデータの可視化

SNS運用はフリーランスに必須なスキルですが、できればバズる投稿をしたいと思います。

そんな時に、pythonのスクレイピングでは、バズったツイートを取得し、一覧で可視化することができます。

営業リスト取りなどのルーチーン業務などの自動化

日々、営業先の情報を検索し、コピーアンドペーストして、CSVに貼り付けるという誰にでもできるルーティーンワークを行なっていると思います。

これらの創造性のない誰にでもできるルーティーンワークをpythonでスクレイピングすれば、全て自動で行なってくれます。

夜に設定して、朝に起きたら営業リストが自動で生成されているということです。

pythonのスクレイピングを学ぶ上で必要な知識

スクレイピングの基本は、マークアップ言語と呼ばれる情報からデータを取得します。

具体的には下記の流れになります。

python(サーバーサイド言語)でスクレイピング

HTML・CSS(マークアップ言語)から情報取得

必要な情報を取得

上記の流れに沿って、pythonのスクレイピングを行う上で最低限必要な知識は下記の2つです。

  • HTML / CSS
  • Python

HTML / CSS

マークアップ言語と呼ばれ、プログラミング言語とは異なる性質を持ちます。

スクレイピングは取得するデータを指定するのですが、取得する際に「ここから取得する!」と、指定する際にマークアップ言語の知識が必要になります。

Python

Pythonはプログラミング言語の中で新しい種類のため、非常に簡単にコードを書けることが特徴です。

URLにアクセスするなど、サーバーサイドの役割を果たします。

JavaScriptは覚えるのは大変なのですぐには必要ない

JavaScriptは覚えたら非常に便利な言語ですが、PythoとHTML・CSSがあればスクレイピングは可能なので、スクレイピングが目的であればすぐには不要です。

ただ、覚えておいたほうが便利なのは間違い無いので、時間がある時にでも勉強してみてください。

pythonのスクレイピングを始める前にすべきこと

それでは、実際にpythonでスクレイピングを始めるために、開発環境を整えていきます。

今回は、「Jupyter Notebook」というブラウザ上で動作を確認できる環境を使います。

インストールの方法は、「 Jupyter Notebook(IPython)のインストールと始め方」で確認してください。

pythonのスクレイピングの2つの方法とサンプルコード

開発環境を整えたら、ライブラリを活用してスクレイピングをしていきます。pythonのスクレイピングで活用できるライブラリは下記の3つです。

  • Requests・Beautiful
  • Selenium
  • Scrapy

ライブラリとは、Pythonプラグラムに初めから埋め込まれているプログラムです。ライブラリを使うと、数行で複雑な機能を呼び出すことができます。

Requests・Beautifulライブラリを使う

最も簡単で、最も有名なライブラリを使った方法です。サンプルコードは下記の通りです。


import requests
from bs4 import BeautifulSoup

# 特定のURLを指定
url = 'http://nakazawakan.com/'

# マークアップ(html)を取得
html = requests.get(url)
soup = BeautifulSoup(html.content,"html.parser")

# titleタグ内のテキストを取得
title = soup.find("title").text

# 上記を出力
print(title)

# 出力結果
# カプリチョーザな、たびんちゅう。 | 陸上で全国大会出場して、ラクロスで世代別日本代表になって、就職せずにホッカイロ売りを始めた、旅好きな中澤寛のブログ

Seleniumライブラリを使う

次に、Seleniumライブラリを使用したスクレイピング方法です。

少し複雑なので、詳細は「 PythonでSeleniumを使ってスクレイピング (基礎)」で確認してください。

基本的には、Requests・Beautifulライブラリを活用したスクレイピングで問題ないです。

Pythonのスクレイピングを行う上での注意点

まず、スクレイピングは相手のプログラムに負荷を書ける作業です。そのため、スクレイピングをすること禁止するURLもあります。

日本でも、実際にスクレイピングのしすぎで 「岡崎市立中央図書館事件(Librahack事件)」という事件も起こりました。

「相手に迷惑をかけている」という点を考慮し、Webスクレイピングの注意事項一覧は最低限守るようにしましょう。

実際に僕がPythonの勉強をする上で役に立った教材

pythonはまだまだ新しい言語なので、他のプログラミング言語と比べたらインターネット上の情報は少ないです。

そこで、僕が実際に行なった勉強方法をご紹介します。

あらかじめお伝えしておくと、最も効率的な学習方法は「腕のいいPythonエンジニア」を見つけることです。家庭教師になってもらって教えてもらう方法が、最も効率的です。僕は見つけることができなかったので、独学で勉強しました。

本で体系的に抜け漏れなく学ぶ

体系的に学ぶという点において、本の優位性は高いです。

僕が実際に購入した本は2冊です。(後者は非常に難しいので、初心者にはオススメしません。)

独学プログラマー Python言語の基本から仕事のやり方まで [ コーリー・アルソフ ]
created by Rinker
¥3,278 (2019/12/12 17:07:29時点 楽天市場調べ-詳細)

オンラインプログラミング学習で勉強する

ウェブサービスで、月額1,000円程度でプログラミングのオンライン教材が販売されています。

無料でも一定までは勉強できるので、まず聞き流す程度で勉強してみることをお勧めします。なんとなく聞くだけでも十分です。

まとめ

pythonを習得すると、1日のルーティーンワークの中で、最低でも30分は時短することが可能です。

誰でもできる仕事はpythonのスクレイピングに任せ、自分にしかできないことに注力しましょう。

Related

優秀なエンジニア募集

現在、ウェブアプリケーション開発・システム開発の案件を多数保有しており、受託案件希望の優秀なエンジニアを随時募集しております。

そのため、受託希望のエンジニアの方は下記LINE@よりご登録頂き、チャットで簡単な自己紹介をお願いいたします。

使用言語等は指定はありませんので、お気軽にご登録ください。

中澤寛の顔写真

中澤 寛

ラクロスで世代別日本代表になり、旅がしたいというただ一心で、就職せずにとりあえず路上で靴磨きの商売を始める。

その後、独学でプログラミングを学び、ウェブアプリケーション・システム開発を受託で請負、200以上の開発に携わる。

【使用言語】 HTLM・CSS / JavaScript / PHP / Python 。