2019-02-05SEOを意識しながらライティングしている方は、こんな悩みを抱えていませんか?トラハックいちいち検索しなくても上位表示されているサイト情報を取得できたら便利なのになあ。データを取得したら分析もできるようになりたいな。キーワード選定や市場調査は時間のかかる作業なので、できれば効率化したいものですよね。本記事では下記の内容を紹介します。この記事を読めば分かることPythonのスクレイピングという技術を用いたデータ収集方法(コードの意味は理解できなくても大丈夫)スクレイピングと合わせて学んでおくべきこと「そもそもPythonって何?」という方は次の記事を読んでみてください。プログラミング未経験者でもPythonのコードを書いて動かせるようになります。https://torahack.com/affiliater-what-is-pythonなお、私はこれまでPythonでwebサイトの情報を収集していくつかの自動化ツールを作ってきました。私がこれまで作成したプログラムwebサイトの情報を収集してGoogleカレンダーに自動登録するbot通貨の売買量(動的なデータ)を基に仮想通貨FXを自動取引するbot機械学習を用いて画像を自動生成するプログラム(例:馬の画像→シマウマの画像を生成)それでは、Pythonによるスクレイピングを解説していきます。ContentsPythonのスクレイピングによるデータ収集方法スクレイピングの概要を理解するスクレイピングで検索上位サイトから情報を取得してみようスクレイピングの注意点Pythonでスクレイピングするなら合わせて学習しておくべきこと収集したデータを分析しようより高度なスクレイピングをしてみようPythonのスクレイピングによるデータ収集方法Pythonで書いたスクレイピングプログラムを使って、実際にwebサイトの情報を収集してみましょう。スクレイピングの概要を理解するスクレイピングは対象のwebサイトのHTMLから、取得したいデータを収集する技術です。聞くと複雑な処理をしているように感じますが、決して難しいことはありません。スクレイピング用のコードはwebで検索すれば簡単に見つけられます。そのコードがあればあとは「対象webサイトのURLと取得したいHTMLタグ」が分かっていれば取得できるからです。コードの一部を掲載します。対象のwebページのタイトルを取得する場合、以下のようなコードになります。対象のwebページのディスクリプションを取得する場合、は以下のようなコードになります。分かりましたか?webページの「タイトル」と「ディスクリプション」を取得するには指定するHTMLソースのタグ名やCSSセレクタを変更するだけで良いのです。CSSセレクタについてCSSのセレクタとは?覚えておきたい25種類と書き方に分かりやすくまとまっていたので参考にしてみてください。スクレイピングで検索上位サイトから情報を取得してみよう仕組みを理解するよりもまずは手を動かして実際にスクレイピングをしてみましょう。私のプログラミング学習理論が「習うより慣れよ」だからです。webで検索して見つけたコードを参考に、試行錯誤しながらあなたの作りたいプログラムを作るのが上達の近道です。それに、トライ&エラーしている間や完成に近づける過程でアドレナリンがドバドバ出るのでモチベーションを高く保つことができます。それではコードを見てみましょう。このプログラムは、指定したワードのGoogle検索結果上位トップxxを取得して、そのwebページの「URL」「タイトル」「ディスクリプション」「キーワード」をcsvファイルに出力します。出力したcsvファイルは自動でローカルにダウンロードされます。Colaboratoryの新しいノートブックに貼り付けてみてください。大丈夫、編集が必要のある箇所は最低限に抑えています。この中で、8~12行目をあなたの希望に合わせて変更してください。‘キーワード3’]のように。1つであれば[‘キーワード1’]でよいです。検索したい件数は「str(10)」の数字の部分のみ変更してください。data’となっています。このデータも取得できるよう改善しておきます。スクレイピングの注意点スクレイピングは非常に便利ですが、守るべきルールもあります。そのルールとは対象のwebサイトに投げるリクエストの回数と間隔です。そのルールを守れていないスクレイピングプログラム(クローラー)は、最悪の場合、法を犯す可能性もあるので必ず一読してください。こちらのサイトにルールがよくまとまっていたので参考までに。スクレイピングは、通常ならば人が検索エンジンからクリックしてアクセスすること(=リクエスト)をプログラムによって実行しています。人よりも高速に複数回のリクエストを投げることができます。1つのwebサイトに秒間何万回もリクエストを投げるようなプログラムを使ったとしたら...?当然サーバーに高い負荷をかけることになります。そのため、同一webサイト(webサーバー)にスクレイピングする際は「100秒間に100回まで」という基準があります。悪意が無かったとしても、ルールを知って守っておかなければいけませんね。Pythonでスクレイピングするなら合わせて学習しておくべきことひとまずスクレイピングで検索結果上位サイトの情報を取得できようになったので、次のステップに進んでみましょう。収集したデータを分析しようスクレイピングで大量のデータを収集できたら、次はそのデータを分析できるようになりましょう。データは存在しているだけでは無価値です。データは活用されてこそ初めて価値を発揮します。そのためにはデータ分析の知識が必要になります。Pythonを用いたデータ分析を学びたければ、udemyというプログラミング学習動画プラットフォームがおすすめです。動画学習はプログラミング初心者でも挫折しにくい方法です。プログラミング初心者向けの学習方法について、次の記事に詳細をまとめているので参考にしてみてください。本記事では、独学を始めたばかりのプログラミング初心者...より高度なスクレイピングをしてみよう今回は簡単なスクレイピングのコードを紹介しましたが、他にも好きなようにデータを取得できるようになりたくありませんか?スクレイピングは深掘りして学ぶ価値のある技術です。データの取得」「処理の高速化」など奥が深いからです。専門的にスクレイピングを学びたいと思うならばこのあたりの書籍がオススメです。禁止事項などを広く学ぶことができます。スクレイピングによるデータ収集〜機械学習によるデータ分析までカバーしている書籍です。Pythonの基礎をある程度理解できている方向け。以上で、今回のスクレイピング講座は終わります。スクレイピング講座まとめスクレイピングは簡単に実装できるHTMLとCSSの知識が多少あれば、好きなデータを収集対象とすることができる事前にスクレイピングのルールを確認して、必ず守る。データを収集したら次は分析してみよう。次回以降は収集したデータを分析する方法について書きます。リモートOKなスタートアップでフロントエンド|搾取されないエンジニアを増やすために、キャリア論や転職を成功させる方法、勉強方法について発信しています。