このチュートリアルの学習内容

このチュートリアルでは、クラウドソーシングサイトに実際に存在するデータ収集案件にかなり類似した案件を、営業~要件定義、制作、納品までのプロセスを学習します。

実際に、クラウドソーシングサイト(クラウドワークス、ココナラなど)には、スクレイピングを発注する企業様が多数あり、比較的未経験でもスクレイピング案件はやりやすいです。単価も、5000円~10万円の案件があり、趣味でプログラミングをまなんでから、じっさいに簡単な仕事をやってみたい方には、非常におすすめです。

今回の案件イメージは、こちらです。

【急募・経験者歓迎】大手ポータルサイトのデータクローリング業務
固定報酬制:25,000円

仕事の詳細
単発のデータリストとして、大手ポータルサイト(メディア系)のデータクローリングを実行して頂ける方を募集しております。
以下、詳細を記載いたしますので、ご確認ください。

【依頼詳細】
大手ポータルサイト(メディア系)のデータクローリング業務

【欲しいデータ】
こちらのアフィリエイト検索ナビから、データを収集します。
ここから
・案件名
・成果報酬
・取り扱いASP
を取得してください。
毎日更新されますので、日時でCSVをダウンロードできる形がよいです。

このチュートリアルを学習する前に必須の学習項目

このチュートリアルでは、

  • HTML / CSSの基礎知識
  • スクレイピングの基礎が理解できていること
  • AWS Cloud9を利用して、Seleniumの環境構築が完了していること

が条件となります。まだ学習をしていない方は、以下のチュートリアルを進めてください。

HTML & CSS | プログラミングの入門なら基礎から学べるProgate
各コースのレッスン一覧ページです。各コース別の最適な学習順序やレッスンに関する概要を確認することができます。
PythonでSeleniumの環境構築をしてみよう | DAINOTE オリジナルアプリを作ろう
Webスクレイピングライブラリ「Selenium」の環境構築を行います

 

学習手順

それでは、さっそく学習していきましょう。
実際の案件を獲得するまでの手順について、ざっとまとめていきたいと思います。

スクレイピング案件を獲得して、納品するまでは、以下のステップで学習を進めていくとよいでしょう。

  1. ポートフォリオを作る
  2. 提案営業する
  3. 要件定義する
  4. 実装する
  5. 納品する

ポートフォリオを作る

未経験から仕事を取るうえで、重要なのは、ポートフォリオです。
ポートフォリオとは、実際にプログラミングを利用した何かしらの成果物となります。

私自身、クラウドソーシングサイトで、仕事を発注していますが、「この人に仕事を任せて大丈夫か」を検討するうえで、

  • 過去の業務経験・実績
  • なければ、それに準ずるポートフォリオ

を、非常に重要視します。

一方で、未経験の方からすると、「はじめて案件を取るのに、過去の実績なんてない!」と困る方もいらっしゃるでしょう。

ですので、「私は案件を受注したことはないけれども、過去にこのようなサイトを作ったことがある/このようなスクレイピングをやったことがある」と言えれば、多少なり信頼してもらえると思います。

ですので、未経験から仕事を取るうえで、重要なのは、実績につながるようなポートフォリオ作成となります。

もし、ポートフォリオを作成して、最初の1件目を受託できれば、それが実績になります。実績が増えれば、さらによい案件に出会いやすくなります。

ですので、最初の1件目をとるためのポートフォリオ作成が非常に重要になります。

どんなポートフォリオを作ればいいの?

ポートフォリオの作り方のコツとしては、実際にクラウドソーシングサイトで依頼されるような案件に似たポートフォリオを作るのがオススメです。

私自身、クラウドソーシングサイトで仕事を発注する場合、クラウドワーカーが、類似の実績があると、かなり安心します。

なので、実際のスクレイピング案件に似た成果を、学習し、それをポートフォリオにすることで、提案営業がしやすくなります。

今回のチュートリアルは、実際にクラウドソーシングサイト上で依頼された、単価2.5万円程度の案件となります。

ですので、それくらいの案件を受注するために、必要な技術をここで身に付けて、ポートフォリオを作ってみましょう。

ポートフォリオはどこに公開すればいい?

Webサイトのようなものに関しては、ネットに公開することが可能ですが、スクレイピングの場合だと、ネットに公開することは難しいです。

ですので、おすすめなのは、ブログやQiitaなどのサービスに、実際にスクレイピングができることをアピールできるような記事を作成することがおすすめです。

ただし、1点注意点があります。

チュートリアルをそのままコピーしたものをポートフォリオにするのは辞めておきましょう。

エンジニアの採用や、クラウドソーシングで仕事を発注する場合、ポートフォリオを教材そのままにしている人は、仕事を任せません。

というのも、自分で考えて実装できることをアピールするのがポートフォリオの役割なので、コピペで作ったポートフォリオはむしろ逆効果なのです。

なので、実際にチュートリアルで学んだ知識を活かして、オリジナルなアプリを作ることをおすすめします。

提案営業をする

ポートフォリオができたら、具体的に、類似案件に提案営業してみましょう。

クラウドソーシングサイトなら、クラウドワークス、ランサーズ、ココナラなどのサービスを利用して、「スクレイピング」「クローリング」などの案件を調べてみましょう。

そこで、ポートフォリオに近い案件があれば、以下のような提案文で、営業してみましょう。

要件定義する

ここまできたら、クライアントと要件定義を行うことになります。

要件定義を行う場合は、以下のことで同意を取っておくことが重要です。

  1. 期限:いつまでに納品するか
  2. 保守の有無について:スクレイピングするサイトのソース変更の可能性があるので、保守の有無を確認する
  3. 出力形式:単発のCSVファイルなのか、ソースコードなのか。毎日CSVが更新される必要があるのか。
  4. 取得するデータ:

期限

期限は、なるべくバッファを持って提案しましょう。また、相手の案件の緊急度もしっかりと確認しておく必要があります。
緊急度が高い案件で、期限が遅れてしまうと、炎上してしまいます。

保守の有無について

スクレイピングを行う場合、スクレイピング先のWebサイトのソースコードが変更される可能性があります。その場合、スクレイピングツールが動作しなくなる可能性があります。

上記の要件が確定しないまま、実装に入ると、途中で認識の齟齬が起こり、最悪の場合案件の終了する可能性があります。ですので、しっかりとすり合わせましょう。

今回の場合は、

  • 期限:1週間後
  • 保守の有無について:保守はなし。修正が必要な場合は、別途追加料金+10000円
  • 出力形式:クライアントのリテラシーが低いので、指定したDropboxに毎日自動デブロイ
  • 取得するデータ:案件名, 成果報酬, 取り扱いASP

となります。

お互いの認識があったタイミングで、お仕事を開始します。

今回のスクレイピングするWebサイトの要件確認

それでは、さっそくスクレイピングしていきましょう。

まず、今回はスクレイピングするための専用サイト「アフィリエイト検索ナビ」を作成しました。

アフィリエイト検索ナビ

実際にアクセスしてみてください。

http://affisearch.herokuapp.com/

ログインしていない状態ですと、ログインを求められます。

最初は、IDがないとログインできないので、Sign Upから新規アカウント作成を行う必要があります。

今回は、すでに作成した、以下のアカウントでログインしてみましょう。

  • Email: sample@sample.com
  • Pass: sample1234

無事ログインできると、さきほどの検索画面が出てきます。

こちらのページ下に、ページャーがありますね。

ここから、すべてのページにアクセスして、全件のデータを取得します。

収集するデータは、以下3点です。

  1. ASP
  2. 成果報酬
  3. 詳細

 

これらのデータを、毎日自動取得して、CSVに保存します。

また、クライアントはPythonのコードを実行できるほどITリテラシーが高くないので、クライアントが指定したファイル共有サービスに毎日CSVをアップロードします。

ということで、スクレイピングの要件の確認です。

  1. ログインを自動化して、検索画面に入る
  2. ルートページにアクセスして、ページャーを全件取得する
  3. 取得したデータをCSVに保存する
  4. CSVをファイル共有サービスに保存する
  5. これを毎日定期実行する

次の学習内容

お疲れさまでした!この回のチュートリアルは以上となります。

ぜひ、学習の継続のために、学んだことをTwitterに投稿してみてください。

学習をTwitterに記録する

さて、次の学習コンテンツを紹介しておきましょう。

このチュートリアルは、実際に案件を納品するまで、3つの段階に分けます。

  1. スクレイピング案件②Seleniumで自動ログインして、ページを全件取得してみよう
  2. スクレイピング案件③ファイルをアップロードしよう
  3. スクレイピング案件④Heroku Schedulerで定期実行してみよう
スクレイピング案件②Seleniumで自動ログインして、ページを全件取得してみよう | DAINOTE オリジナルアプリを作ろう
Seleniumを利用して、メディアサイトに自動ログインし、中のデータをすべて取得します
スクレイピング案件③ファイルをアップロードしよう | DAINOTE オリジナルアプリを作ろう
スクレイピングしたデータを、ファイルに自動アップロードできるように、Slack APIを利用してファイルをアップロードする方法について学びます。
スクレイピング案件④Heroku Schedulerで定期実行してみよう | DAINOTE オリジナルアプリを作ろう
Heroku Schedulerにファイルをアップロードし、定期実行ができるようにします。

こちらのチュートリアルは、¥1980で購入できます。スクレイピング案件受託コースを購入すると、その後の学習コースも一緒に購入することができます。セット割まとめて購入すると4980円で購入することが可能です。