Python

【必読】Pythonでスクレイピング!出来ることと注意点!

2023年1月22日

パイソン-スクレイピング

以前に『Python出来ること5選』という記事でスクレイピングについて紹介しました。

あわせて読みたい
Python出来ること
【初心者でも大丈夫】Pythonで出来ること5選【簡単に使える】

最近、Pythonと言うプログラム言語が流行っているらしいけど、『そもそもPythonってどんな言語?何が出来るんだろう?プログラムに触れたことがなくても大丈夫かな?効率よく学べるか心配・・・』 これ ...

続きを見る

『Pythonを使えばスクレイピングが可能で、
サイトから自動で情報を取得できることは分かったが、他に何かできるの?
または注意点とかは?』

そんな疑問に答えていきます。

①スクレイピングで出来ること

パイソン-スクレイピング出来ること

スクレイピングは、英単語「scraping」の「削る」という意味からきており、
『不要な情報を削り取って』、『重要な情報をサイトから取得』する技術です。

サイトから情報収集する時に、いつの間にかとんでもな時間を費やしていませんか?

そんな時にスクレイピングの出番で、
今まで膨大な時間を要した作業を自動化することが可能で大幅な時間短縮が見込めます。

具体的に以下の内容がPythonで実現できます。

スクレイピングで出来ること

  • 1.株価を取得する。
  • 2.Googleの検索結果を取得する。
  • 3.ニュースサイトからタイトルとURLを取得する。
  • 4.ネットオークションの価格をチェックする。

1.株価を取得する。

下の記事でも紹介させて頂きましたが、
APIを使って株価の確認が簡単にできます。

あわせて読みたい
パイソンエムピイエルファイナンス
Pythonのmplfinanceでローソク足チャートを描く方法

過去記事でPythonで株価チャートを描けると紹介しました。 でも、プログラムでチャートを表示するのは難しいのでは?チャートだけでなく移動平均や出来高、トレンド系やオシレータ系といったテクニカル分析は ...

続きを見る

さらにタスクスケジューラを使うことで毎日同じ時間に株価を取得することも可能なので、それは別記事で解説します。

2.Googleの検索結果を取得する。

紹介していて何ですが、
Googleから検索した結果をスクレイピングすることは禁止されています。
自動化されたクエリ

『じゃあ、意味がない』と怒らないで下さい。
Google Custom Search JSON APIといった、Googleが提供している
APIを使用することで大量の検索結果を取得することが出来ます。

取得方法は別記事で解説します。

3.ニュースサイトからタイトルとURLを取得する。

ニュースサイトのトップページにアクセスすると、
テキストよりもインパクトのある画像をクリックして
ついつい別の記事を読んでしまったことはありませんか?

スクレイピングでテキストとURLを事前に取得しておけば、
本当に興味があるニュースのみを選ぶことが出来ます。

別記事で解説します。

4.ネットオークションの価格をチェック

一日に何回もネットオークションの価格を確認するのは面倒ですよね?

例えば設定した金額以上になれば自動でLINEやメールで通知することが可能です。

別記事で解説します。

②スクレイピングの前に【注意点】

パイソン-スクレイピング注意点

便利なスクレイピングですが、いくつか注意点がありますので、
以下の順序で解説します。

スクレイピングの注意点

  • 1.利用規約
  • 2.Webサイトへの過度なアクセルをしない
  • 3.API
  • 4.robots.txt

1.利用規約

利用規約はサイトを利用する時のルールや条件が記載された文書でです。

利用規約に「スクレイピングを禁止」や「違反してスクレイピングをした時は損害を賠償」と
記載があるサイトでスクレイピングを実行すると
利用規約違反となり、損害賠償を請求される可能性があります。

なので、スクレイピングをするサイトに利用規約が記載されている場合は、
しっかり確認しましょう。

利用規約違反での損失を考えればルールを守ることは当然で、
内容を十分に理解してからスクレイピングする必要があります。

2.サイトへ過度なアクセルをしない

サイトに過度なアクセスをするとサーバに負担をかけるので、
最悪の場合はアクセス先のシステムの不具合が発生したり
他のユーザーがサイトを回覧が出来ない等のトラブルが考えられます。

そんな事にならないよう、
1秒以上の間隔をあけてからサーバーにアクセスする等の対策が必要です。

3.API

対象のサイトがAPIを提供してるか確認しましょう。
APIを提供しているのは、ユーザーへ情報提供を公式に許可しているためです。

さらにスクレイピングよりも安全に情報収集ができるメリットがあります。

ただし、APIの利用が有料や制限があるサイトがあるので、
APIとスクレイピングのどちらを使うかは、
よく検討する必要があります。

4.robots.txt

『利用規約を読んでもスクレイピングが禁止されているか分からない』
さらに『APIもあるか分からない』場合、
他に確認する方法があるか?

robots.txtはアクセスしても良いか、
それとも禁止しているか記載しているファイルで、
これを確認すれば禁止されているか判断することが出来ます。

サイトのURL+robots.txtで確認することが出来るので、
実際に入力してみましょう!

参考に楽天市場で確認します。
『https://www.rakuten.co.jp/robots.txt』

楽天-robots-text-サンプル

結果はすべて『Disallow』でスクレイピングが禁止されていることが
分かります。

代表的な項目を下の表にまとめました。

記述例 解説
User-agent: * 対象となるクローラーの種類。
『*』はすべての種類のクローラーを対象とします。
Crawl-delay: 5 クロールする間隔(秒)
Disallow: /ng クロールを禁止するパス
Allow: /ok クロールを許可するパス
Disallowでアクセスを禁止したパスの一部を
許可するために使用します。

Googleにrobots.txtについて詳しく記載されているので、参考にして下さい。
Google による robots.txt の指定の解釈

③Pythonでスクレイピングするライブラリ

パイソン-スクレイピングライブラリ

スクレイピングで出来ることと注意点は分かったから、
Pythonでも利用方法を知りたい方もいらっしゃると思います。

Pythonでスクレイピングをするには以下3つの代表的なライブラリがあります。

Pythonでスクレイピングするライブラリ

  • 1.selenium
  • 2.beautifulsoup
  • 3.Requests

ライブラリの使用方法を解説するとかなり長くなるので
下の記事で紹介させて頂きます。

あわせて読みたい
seleniumスクレイピング
Pythonのseleniumでスクレイピングする方法

以前に『スクレイピングで出来ることと注意点』という記事でスクレイピングについて紹介しました。 スクレイピングについて十分理解できたと思うので、今回はPythonのseleniumを使ったスクレイピング ...

続きを見る

今回は以上です。

  • この記事を書いた人

メカタナ

副業ブロガー【経歴】関西出身▶︎理系国立大学院▶︎東証プライム上場企業メーカー開発職▶︎妻と息子1人と暮らしています。▶︎メカタナブログを開設⇒仕事や日常で役立つPythonプログラムを紹介していきます!

-Python