このページは、クラウドソーシング等でスクレイピング関連のご依頼を検討されている方向けに、よくあるご質問やご要望をテンプレート形式でまとめたものです。発注時の参考にしていただければ幸いです。
まずデータ作成かツール作成か
スクレイピングの発注を検討されている方は継続してデータ収集する(更新する)ことを希望されることが多く、ツール作成を希望されることも多くありますが毎日取得などのよほどの高頻度でなければデータ作成での発注をお勧めしています
日次以下の取得頻度であれば微調整程度の対応を込みにした保守契約を開発時の10%~20%程度の金額で月次契約いただけるとこちらで取得代行することも可能ですし、不定期に全く同じデータを取得するなら2回目以降も同じく開発時の10%~20%程度の費用で代行することも可能です
金額は目安なので都度調整させてください
データ作成の推奨理由
スクレイピングはサイト構造に合わせてプログラムを作るわけですが、サイト側が急に仕様を変更する場合があり適宜改修が必要になります
他にも環境要因でエラー(私のPCではうまくいくのに他のPCではエラーになるとか)になる場合があり調整が必要になるシーンがあったり、そもそも実行環境としてアプリのインストールが必要になったり定期実行を希望される場合はその設定も必要です
特に定期実行となると24時間365日起動しているPC環境も必要なのでプログラム以外にも課題があったり、サイトによってはプロキシを使ったりIPローテーションしようとするとサービス契約が必要とか細々考慮が必要場面があります
が、データ作成代行を依頼していただけるとそのあたりを全て解決できます!
もう一つ利点として、差分抽出にしたり手元での加工とか項目の増減などちょっとした修正程度ならこちらで吸収(無償対応)します
ツール作成をする場合
とは言っても、「よく知らない人と定期契約しても希望のタイミングで応じてもらえなかったら・・・」なんてリスクと心配背負えないからツールで納品してほしい要望は理解できています
データ作成推奨理由の裏返しがそのままツール作成のリスクになりますが、その前提でも希望される場合は3パターンで対応できます
- Python(pyファイル)で作成 ※Selenium+Beauful Soup
- ExcelのVBAで作成 ※SeleniumBasicのインストール要
- Pythonでアプリ(exeファイル)作成 ※pyinstallerで変換
それぞれ利点と欠点がありますので簡単にまとめます
Python(pyファイル)で作成
私が自分で作るときもPythonなので可能ならこれが一番
“Selenium”を使えばブラウザ操作の再現ができ、画面遷移や動的ページの情報収集も可能なので手動操作で取得できる情報は基本的に全部取得できると思っていただいて大丈夫
加えて”Beauful Soup”を組み合わせると処理速度も向上します
取得結果もCSV・Excelでの出力は当然ながら、データベース登録やスプレッドシートへの書き込みなど幅広く対応できます
ただPythonを実行するためにはアプリのインストールと適宜モジュールのインストールも必要になるので少しハードルが高いかもです
また、ID・PWのように可変の文字入力が必要な場合、外部ファイル(iniファイル、jsonファイル、.envファイル、もしくはCSVファイルなど)を読み込ませるか最悪プログラムの中に直接書くことになるのでここのちょっとしたハードルになるかと
ExcelのVBAで作成
みんな大好きExcelでもスクレイピングルーツを作ることは可能です
VBAでもPythonと同じく”Selenium”を使うことがで可能になりますが、SeleniumBasicのインストールが必要になります
ただPythonで使うSeleniumに比べると機能が少ないので使い勝手が悪く、Beauful Soupの代用もないので優先度は下がります
もう一つ評価を下げる要因としてタスクスケジューラなどで定期実行するにはExcelは不向き
ただ、評価が低いのはスクレイピングツールとして情報を取得する場合の話で、RPAツールとして情報を入力する場合はExcelで調整したデータを使えると逆に評価が高い場面も多いです
あとはExcelで2次加工がある前提なら最初からVBAで作った方がまとめて処理できたりするので優先度上がるかもしれないです
Pythonでアプリ(exeファイル)作成
Pythonでハードルとしていたアプリのインストールなどを一気に解決してくれる方法がこれ
加えてアプリ画面を作ることができるので、例えばID・PWの入力ウィンドウ作ったり進捗状況がわかるステータスバーやメッセージウィンドウ、ボタンを分けて複数機能を作ったり幅が広がります
ですが、問題は機能を増やせば当然その分作成に時間がかかりますし、エラーが発生した際にデバック(=調査)できないことに加えて”一度アプリにしてしまうと改修ができない“点が一番ネック
アプリのもとになるPythonファイルを改修して改めてアプリにしてあげれば解決ですが、よくある”とある人に作ってもらったアプリを改修してほしい”はもとになっているPythonファイルがないと実現できません
なので”ダブルクリックで実行されるだけのファイルでOK(≒画面不要)“かつ”もとになっているPythonファイルも納品してもらう“であれば選択肢としてありかなと思います
契約について
ここからは契約に関する完全に個人的な内容です
契約金額について
対象サイトや取得項目によって前後しますが、今は「1サイト」の対応で2~3万円を基準にしています
発注者側の立場だと「取得件数×単価」を希望されることもわかるのですが、作成側としては取得件数が100件だろうが100万件だろうがプログラムは基本的に同じなので1サイトで計算しています
もう一つ大事なことがありまして「過去に対応したことがあるサイトで単価の変動」はしていません
取得の条件が前と完全一致するかわからないですし、サイトの仕様が変わっている可能性があることと初めて発注していただいた方が損をする構図にしたくないためです
他にも条件次第で前後しますので都度協議はさせていただきますが最安で1万円、最高でも5万円かなが感覚です
納期について
週末稼働をメインにしている都合もあって契約から一週間を目安にしていただきたいです
最短1日で納品できたこともあればプログラムを作る過程で課題が見つかって2~3週間かかったケースもありますが、適宜状況報告させていただきながら進めますので意味もなく遅延させることはありません
どんな内容でもなる早対応していますので、もし余裕がある方は1カ月先を期限とかにしていただけると気持ち的には余裕になってありがたいです
あとがき
契約時は都度協議させていただきたいのですがよく質問いただいたり提案させていただいていることをまとめてみました
過去対応したことあるサイトもプロフィール画面にまとめていますので、ご検討いただく際には参考にしていただけると幸いです