・・・キャラ変えたんか?クローリングについてクローリングは、複数のWebサイトのリンクを参考に、Webページを巡回する技術です。クローリングをするプログラムをクローラーとも呼びます。クローリングが活用されている有名な例は、Google検索。非常に高度なアルゴリズムにより、様々な検索結果を表示しています。にゃんこ師匠クローリングは、スクレイピングと一緒によく出てくる言葉なので、最低限理解しておくといいじゃろう!WebスクレイピングについてWebスクレイピングは、HTMLから自分が欲しいと思うデータを取得すること。これを行うプログラムをスクレイパとも呼びます。Web上のデータを取得する上では、欠かせない技術となっています。クローラにより、自分が欲しいと思うデータのあるWebサイトにアクセスし、スクレイパによって情報を取得していくという流れです。スクレイピングをする前にスクレイピングは、HTMLとCSSを知っておかなければ、何もできません。そのため、自信のない人は「Progate」などで復習、または学習しましょう。Selenium(セレニウム)を使ってのスクレイピングやDOM解析には、JavaScriptの知識が必要になる事がよくあります。JavaScriptについてよく知っておくのも、スクレイピングに役立ちます。スクレイピングを行う際の注意点スクレイピングは、禁止しているサイトではやらないようにしましょう。サイトに過度にアクセスをすると、法に反することもあります。実際に、過度なスクレイピングにより逮捕されているケースもあります。最悪の事態にならないよう、スクレイピングを禁止していないかを確認したり、過度なアクセスをするプログラムではないかを確認しましょう。スクレイピングのオススメの言語スクレイピングをするのに使用する言語は、にゃんこ師匠的にはPythonをおすすめします。Pythonはスクレイピング関連のライブラリが豊富だからです。Webアプリケーションに使用している言語によっても、使用すべき言語が変わります。(PHPで作られているのなら、PHPでスクレイピングをするということです。書籍やサイトでもPythonによるスクレイピングの情報が豊富じゃな!ミツオカそれだと、障害やエラーが発生した時でも、他言語よりも容易に対処できますねRequestsでのスクレイピングのやり方それでは、スクレイピングのやり方について見ていきましょう。今回は、Pythonを使う前提でお話していきます。Requestsで、Webページを取得する「Requests」は、PythonのライブラリでHTTPの通信を行うことができます。人間のためのHTPPと言われるほど高度で使いやすいライブラリです。Requestsを使うためには、pipでライブラリをインストールする必要があります。環境がない方は、先にそちらを準備する必要があります。Requestsをインストール以下のコードで、ライブラリをインストールできます。requestspip3をインストールされている方は、pipの箇所をpip3とコマンドを打つ必要があります。pipに問題がなければ、難なくインストールできるはずです。Requestsの基本的な使い方では、実際に、Requestsでページを取得してみましょう!今回は、人気WebメディアであるGigazineのページを取得してみました。requests.get(url)print(info.headers)print(info.content)get()関数でurlを指定すれば、そのページの情報を取得できます。ちなみに出力しているものは、ヘッダー情報とbody以下のコンテンツです。headersで「header情報」を、contentで「body以下のコンテンツ」を取得できます。BeautifulSoupで、データを取得するRequestsでwebページを取得したら、ページの解析をする必要があります。その時に用いるのが、BeautifulSoup。インストールそれでは、まず、BeautifulSoupをインストールしましょう。Soup」は、よく併用して使われます。使って、Gigazineのデータを取得してみたいと思います。よってhtmlファイルを解読していきます。最後に、sectionタグを見つける処理を行い、出力しています。ログインが必要なサイトやDOM解析に時間がかかるサイトでは、スクレイピングが困難です。ブラウザ操作でスクレイピングをするため、ログインが必要なサイトでも簡単にデータを取得できます。ボタンをクリックしないと出てこないデータ等がある場合、仮想ブラウザでクリックイベントを発することで、クリックした後のデータを取得できます。Bot判定される確率が高く、セキュリティ面が強固なサイトでは出来ないケースが多々あります。仮想ブラウザを操作し、データを取得していくため、Bot判定にかかりにくいのです。にゃんこ師匠しかし、短所もある...。ブラウザを立ち上げるため、結構重かったりするのじゃミツオカ高速にデータを集めたい場合は不向きかもー!SeleniumのサンプルコードWebブラウザを立ち上げた後、Google検索で、Webスクレイピングという文字で検索をします。注意すべき点は、処理を大量に詰め込むとサーバーに負担がかかります。使うことで、時間を空けながら行うプログラムにするのが良いでしょう。driver.find_element_by_name("q")search.send_keys("Webスクレイピング")search.submit()driver.quit()さいごにRequestsとBeautifulSoupを使えば、簡単にWebサイトのデータを集めることができます。社長と一杯飲みながらお話してみたい方はこちらミツオカフリーランスエンジニア様の募集はこちらにゃんこ師匠その他、お問い合わせはこちらミツオカお気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!一緒に働いてくれる仲間を募集しております!ライトコードでは、仲間を募集しております!当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。「好きなことを仕事にするエンジニア集団」の(株)ライトコードのメディア編集部が書いている記事です。rightcodeエンジニア大募集中!私たちライトコードでは、エンジニアを募集しております。私服大歓迎のカジュアルな職場なので、お気軽にご応募ください!また、フリーエンジニアの方も募集しております。