RPAで約9千の麻婆豆腐レシピから頻出食材ベスト50を調べてみた

![kinu-vs-momen.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/acbfa2d1-51a7-f8c3-48bd-5e0cfcda1f5b.jpeg)
# あなたは「木綿派」「絹派」？麻婆豆腐の仁義なき戦い

日本の食卓には欠かせない麻婆豆腐。各家庭の麻婆豆腐のつくり方には、それぞれの好みが表れていますね。いま、2人が麻婆豆腐に使う豆腐の種類が「木綿」か「絹」かで揉めています。

![a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/cef53e26-2222-9cc1-c1f1-4e5015b8db21.jpeg) **佐藤**: 麻婆豆腐といえば木綿豆腐でしょう。
![b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/a1c4813b-2ad3-8ac7-2e25-9ccd740ab42d.jpeg) **鈴木**: いやいや、オレは昔から絹だよ！
![a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/cef53e26-2222-9cc1-c1f1-4e5015b8db21.jpeg) **佐藤**: トロっとしたアンの中に固めの豆腐が固形で入っているヤツがイイね！
![b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/a1c4813b-2ad3-8ac7-2e25-9ccd740ab42d.jpeg) **鈴木**: オレは柔らかいヤツが好きだよ！麻婆豆腐は飲み物だよ！
![a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/cef53e26-2222-9cc1-c1f1-4e5015b8db21.jpeg) **佐藤**: 本場中国四川は木綿だよ！
![b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/a1c4813b-2ad3-8ac7-2e25-9ccd740ab42d.jpeg) **鈴木**: 日本人には舌触りが柔らかいのが合うよ！
![a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/cef53e26-2222-9cc1-c1f1-4e5015b8db21.jpeg) **佐藤**: 木綿！
![b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/a1c4813b-2ad3-8ac7-2e25-9ccd740ab42d.jpeg) **鈴木**: 絹！
![a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/cef53e26-2222-9cc1-c1f1-4e5015b8db21.jpeg) **佐藤**: よし、じゃあどっちが多いか調べてみよう！
![b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/a1c4813b-2ad3-8ac7-2e25-9ccd740ab42d.jpeg) **鈴木**: オウ、望むところだ！

...ということで、日本人がみんな使っている料理レシピサイト「クックパッド」で、どちらのレシピが多いか調べてみることにしました。


### クックパッドで麻婆豆腐のレシピを調べてみた
日本最大級のレシピサイトですべてのレシピを調べて傾向を割り出せば、日本人の総意としての割合が出せるはずです。

ということで、クックパッドで麻婆豆腐のレシピを検索してみると...なんと**9,393品**のレシピが掲載されていることがわかりました。

![mabo.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/367e789d-c7ae-d56a-e145-a3322eec37ad.jpeg)

![a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/cef53e26-2222-9cc1-c1f1-4e5015b8db21.jpeg) **佐藤**: まじかー！9千件もあるのか!
![b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/a1c4813b-2ad3-8ac7-2e25-9ccd740ab42d.jpeg) **鈴木**: すごい数だな！
1件30秒で処理しても、**9,393件x0.5分=4,696分=78時間**、1日8時間調べても10営業日かかるぞ！
![a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/cef53e26-2222-9cc1-c1f1-4e5015b8db21.jpeg) **佐藤**: 人間がやる仕事じゃないな!
![b.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/a1c4813b-2ad3-8ac7-2e25-9ccd740ab42d.jpeg) **鈴木**: じゃあRPAにやらせよう！

...ということで、RPAを使って約9千件のレシピを解析します。今回は、画面操作だけで誰でも簡単に使えるRPA「Automation Anywhere」を使って解析していきます。

### RPAを駆使してクックパッドの約9千件のレシピを解析!
今回は一覧に出てくる以下の赤枠の部分のレシピをRPAで収集していきます。
![mabo-items.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/01ef04ff-71a7-0af9-f1cd-a04333da9c94.png)


Automation Anywhereは、以下の画面のようにマウス操作でブラウザーの必要な情報の部分をクリックしていくだけで、繰り返しの情報を全件CSVファイルに保存していく作業を自動化できます。
![aa-mabo-scraping-demo01.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/0dfae24e-e328-497f-f97b-34a5f99ad29e.gif)

マウス操作の結果、アクションリストが自動的に完成するので、あとはこれを実行するだけ。自動的にブラウザーのページがめくられ、データが抜き出されていきます。
![aa-mabo-scraping-demo02.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/b1c49b85-3c46-3442-af2e-c050b9621eb0.gif)

最後はこんな風にCSVに出力されます。
![aa-mabo-scraping-demo03.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/e710632a-a264-57db-eaef-35938d7d6688.gif)

後は、このファイルを再度Automation Anywhereを使って加工して食材を抜き出してランキングを作れば完成です。

作業の様子の動画の完全版は[YouTube](https://youtu.be/jx667memdyE)で見ることができます。

### 【結果発表】木綿派、絹派、どちらが多い！？ 約9千レシピに含まれる食材ランキングBEST50！

さて、さっそく結果を見てみましょう！有効なデータ (※) 8,690件中の結果はいかに!?
豆腐の種類の指定があったレシピの数はこのようになりました。

|木綿|2,273|
|:--|--:|
|絹|1,918|

僅差で木綿派の方が多いことが明らかになりました。むしろ、もっと木綿派が多いかと思ったのですが、意外とやわらかい豆腐を好む絹派も多いんですね！

その他、食材を多い順に並べてみると、以下のような結果になりました。1位は当然「豆腐」ですが、「にんにく」「しょうが」などの香辛料は必須、ひき肉は豚を使う、また豆板醤、ねぎ、酒、ごま油などもこの順番で一般的であることがわかりました。


|順位|食材|ヒット数|
|:--|:--|--:|
|1位|豆腐|6,195|
|2位|にんにく|3,033|
|3位|しょうが|2,898|
|4位|豚ひき肉|2,736|
|5位|豆板醤|2,622|
|6位|水|1,958|
|7位|長ねぎ|1,955|
|8位|醤油|1,821|
|9位|ねぎ|1,529|
|10位|酒|1,290|
|11位|ごま油|1,219|
|12位|ひき肉|1,099|
|13位|砂糖|1,090|
|14位|甜麺醤|866|
|15位|玉ねぎ|800|
|16位|味噌|769|
|17位|豚挽き肉|674|
|18位|麻婆豆腐の素|607|
|19位|片栗粉|582|
|20位|サラダ油|568|
|21位|ニラ|445|
|22位|塩|420|
|23位|白ねぎ|413|
|24位|人参|356|
|25位|オイスターソース|348|
|26位|水溶き片栗粉|309|
|27位|ピーマン|304|
|28位|みりん|294|
|29位|油|257|
|30位|もやし|218|
|31位|鶏がらスープの素|205|
|32位|ゴマ油|204|
|33位|にら|197|
|34位|卵|195|
|35位|にんにくチューブ|191|
|36位|鶏ガラスープの素|188|
|37位|挽き肉|186|
|38位|鶏ひき肉|185|
|39位|にんじん|184|
|40位|青ねぎ|176|
|41位|しいたけ|172|
|42位|茄子|171|
|43位|しょうがチューブ|171|
|44位|豚肉|170|
|45位|しめじ|169|
|46位|ラー油|167|
|47位|みそ|167|
|48位|合挽き肉|166|
|49位|麻婆豆腐|164|
|50位|鶏ガラスープ|160|

(※) 全体のデータ数は9,393品と出ていましたが、レシピの中には情報が不完全なものも多く、レシピ情報が取れない項目も結構ありました。また、レシピ情報が長すぎるものは「...」で後ろの項目が省略されてしまっており、これを取ろうとすると各レシピの個別ページを1つずつ開いて調べるロボットを組む必要があってさらに膨大な時間がかかるため、この手順は省略しました。データは表記のゆれなど同一と認められるものは正規化していますが、完璧ではありません。材料の中には「麻婆豆腐」そのものもありますね...正規化はもう少しきちんとやる必要がありそうです。

#【おまけ】技術的な舞台裏

今回は「[Automation Anywhere で簡単ウェブスクレイピング(2)～パターンベースのデータ抽出](https://qiita.com/RPAbot/items/b8b4547893e00f8c3a34)」の方法に従って画面操作を行い、アクションリストを作成しました。(その際、2ページ目から始め、1ページ目は別途データを取得するようにしました。[(注)](https://qiita.com/RPAbot/items/2a56201d0e09ea46c6fc#%E7%97%87%E7%8A%B62%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AF%E3%82%81%E3%81%8F%E3%82%89%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8C1%E3%83%9A%E3%83%BC%E3%82%B8%E7%9B%AE%E3%81%AE%E3%83%87%E3%83%BC%E3%82%BF%E3%81%97%E3%81%8B%E5%8F%96%E3%82%8C%E3%81%AA%E3%81%84))
![aa-mabo-actionlist01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/017c5064-e382-01d9-8cce-579bffd029b1.png)

このボットを実行することで、約1時間ちょっとでデータが集まりました。(939ページに対して1ページ約5秒くらいで処理が終わるので、約80分) 得られたCSVのデータに対して、Excel上で以下のアクションリストを実行して、レシピデータに置換処理を施し成形した後に1列に並べ、それをピボットテーブルで集計するようにしました。

8,690件のレシピは展開すると62,289件の材料が含まれていました。

成形に使ったアクションリストは以下の通りです。レシピの正規化をするための検索置換作業は、簡単にできるRPAツールってなかなかないんです。別途コーディングしたり、エディターで正規表現を組んで別途処理したり、となかなか高度な技が必要なのですが、Automation Anywhere だとコマンドで簡単に検索置換作業ができてしまいます！
![aa-mabo-actionlist02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/479715/72b5c7fc-4682-b57b-df8a-b141dce34bfa.png)

> * 1～3行目: CSVをExcelにしたファイルを開く処理 (1枚目のタブが「mabo」、ブランクの結果出力タブ「Result」をあらかじめ作っておく)
> * 4～25行目: ExcelのReplace機能を使った、不要な記号の削除
> * 26行目: ExcelのReplace機能を使った、区切り記号をカンマに変換
> * 27～39行目: ExcelのReplace機能を使った、材料の名称の正規化 (まだ不完全)
> * 40行目: 再度、シートの中のセルの内容をメモリに取得 (**セルの内容を編集した後は再度 Get Cellsを実行する必要あり**)
> * 41～54行目のループ: データ加工後の「mabo」タブのデータを1行ずつ読みだす。「A,B,C,D,...」のようにカンマ区切りの文字列になっているので、これをString OperationのSplitコマンドでリスト変数に書き出し、リストの要素をすべて「Result」タブのA列目に順番に書き込んでいく。その際、カッコで囲まれた文字列は無視するようにする。