【delika】ぼくのごはん用データセット

delika Advent Calendar 2022

# はじめに

ぼくのはたらく場所のちかくには３軒のごはんどころがある。

１．ばんのう定食屋「やよい軒」
２．早さ最つよ「すき家」
３．コスパ神「スシロー」


ぼくはこの３軒をループする。

https://www.yayoiken.com/

https://www.sukiya.jp/

https://www.akindo-sushiro.co.jp/


そんなある日、ぼくに突然の通知が来た。
>**あなたはメタボリックシンドロームです**

これは店のせいではない。
完全に、ぼくのせいだ。
　あの[券売機](https://www.teraokaseiko.com/jp/news/press-release/2022/20220119075411/)に表示される「肉」、
　あのタブレット端末が誘惑する「特盛」、
　あのまわって誘惑する「べつばらデザート」。

いったいどれだけのカロリーをせっしゅしているというのだ。

delikaにまとめてみよう。

# カロリーデータの取得　やよい軒
「やよい軒 カロリー」で検索しトップに表示されたページへいってみる。
　https://www.yayoiken.com/menu_list/info/9

うーん、アレルギー情報だけで、カロリー情報はないか？とおもったら、
真ん中の「栄養成分情報」のタブにありました。
![スクリーンショット 2022-12-23 11.26.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/e2849f59-981d-1d83-3fbb-90d403634ea2.png)
おー、さすが。しかも、テーブルで一覧になっている。ありがたや。
手作業でのスクレイピングを試行。

このページを「名前を付けて保存」し、保存されたhtmlファイルをExcelで読み込む。

![A01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/138c4fe3-74a8-6621-70dd-73870d63963d.png)

うまく読み込めたようだ。ただ、A3,A4,A5セルのように、結合セルになってしまっているので、結合を解除する。
セル全体を選択して、右クリックし「セルの書式設定」を選択する。
![A02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/8a60b7b3-2402-5ebc-b450-8d963d161336.png)

表示される「セルの書式設定」ダイアログの「文字の制御」の「セルを結合する」のチェックを外して「OK」を押す。
![A03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/e3f3c8ed-235b-cca4-c08a-5f7b17a73eb4.png)

セルの結合が解除された。
![A04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/4f9a2bb2-b0e2-7194-9238-4780a81561fd.png)

B1,B2セルが空欄なので「ご飯」「種類」と入力した。
![A05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/fb82f15f-fbf4-5de3-706d-4f1b3a43924f.png)
![A06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/d92bedf6-11f8-8478-6461-a4131cd96c5d.png)

A2,A4,A5セルなど、結合解除により空欄になってしまっていることに気づいた。
上のセルの値で埋めたい。

こちらを参考にやってみる。

https://kiryusblog.com/excel-unmerge-same-value/



Ctrl+Aで全体を選択する。
![A07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/f9aacd26-94fb-2332-6f13-b257c7ff277e.png)

Ctrl＋Gを押して「ジャンプ」ダイアログを表示させ、「セルを選択」を押す。
![A08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/62adb103-ea5d-b0c5-1565-a95fa59d67e3.png)

「選択オプション」ダイアログで「空白セル」のラジオボタンを押して「OK」を押す。
![A09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/2ec58821-6927-1c49-ea47-63930422de36.png)

空白セルだけが選択された。
![A10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/dc819e8c-204d-5adf-539c-cdca6abac301.png)

A2セルに「=A1」として一つ上のセルを選択し、ここでCtrl＋Enterを押す。
Ctrl＋Enterにより、選択されたセルに同じものが入力される。
![A11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/5fc1063b-2bdb-39c2-e375-6d828c1c61c1.png)

A4,A5セルにはA3セルの値が、A7,A8セルにはA6セルの値が、A10,A11セルにはA9セルの値が入った。
![A12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/e5274ebd-0493-590a-00fb-c895d5295834.png)

２行目を削除する。
![A14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/83894b31-1000-d018-4c98-afa5e9fee60a.png)

このシートをCSV形式で保存する。
![A13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/fac2e0c4-9c7a-fc90-4b2b-608cb7895853.png)

保存したCSVファイルをテキストエディタで開いてみる
![A15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/370171ae-d2ee-a5ce-662e-3125cf276a81.png)

やよい軒のデータは、うまくできているようだ。

# やよい軒のデータのdelikaへの登録

## サインアップする。

https://delika.connecto-data.com/

https://delika.io/welcome

「Sign up」を押して登録作業を行う。
![B01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/7b302513-27c1-e9a6-1374-35efcaa1c7fd.png)

「Proceed」を押す。
![B02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/003193f1-b586-461b-e26c-6e87196a31fb.png)

GithubかEmailでサインアップできるようだ。Emailでやってみる。
![B03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/11d3f717-ef10-f0be-9db1-b13cdd0cb716.png)

Emailアドレスを入力して、Send verification codeを押す。
届いた verification codeを入力して、パスワードを入力して、国を選び、Createを押す。
![B04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/712a523c-cefd-39c3-2072-dfc96627a54e.png)
![B05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/cbf5ab99-0846-5ea9-d816-79b48b594683.png)

Agreeを押す
![B06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/d6128b59-ceee-8163-1e63-92fd24fa2399.png)

User Nameを入力してUpdateを押す。
![B07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/8658a8fc-eeda-973e-0665-13dd79edf9ad.png)

FreeプランとProプランがある。
![B08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/3e660ef1-3d34-9bbf-712c-13f20ed5b0d9.png)

登録が完了した。黒い帯の中にあるDocsを押してみる
![B09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/613cc96d-15aa-f0f4-caf7-1f4b9e46d5fb.png)

ドキュメントを参照できる。
![B10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/e7a82c8b-4480-4051-e57c-66375968d2b6.png)
![B11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/671ad480-b3c3-cdcc-c274-570f980e0c18.png)

黒い帯の中にあるExploreを押してみる
![B09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/613cc96d-15aa-f0f4-caf7-1f4b9e46d5fb.png)

みなさんがアップされているデータを参照できる。
![B09-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/6e9a4afe-a511-b1ee-dd02-87e5369da55d.png)

黒い帯の左側の「delika」を押してみる。自分のデータセットが参照できるようだ。
Datasetの右の＋を押す。
![B12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/7754a21b-d87b-d99a-0b80-edd9996bf1ab.png)

![B17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/e2c01d3f-dca7-8195-21e5-7b1f95cd8a5d.png)

Dataset Nameを入力する。１６文字を超えてしまったようだ。
![B13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/f116ec62-7151-7140-71e1-ad1d59826ada.png)

１６文字以内にする。
![B14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/4d74ddf0-0e59-8b1d-05a2-320d5669691d.png)

DatasetType と Licenseを選ぶ。
![B15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/fe3a96da-5d56-47c6-a687-620d735331a4.png)
![B16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/a8d7b129-a3b3-2057-c2b4-175445bf3251.png)

Createを押す
![B18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/3312609a-c4a8-8b54-005c-ac3da2597911.png)

生成されたようだ。
![B19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/b43c97e5-b569-5896-8e3b-8f3e85d0b113.png)

Update Filesを押す。灰色の領域にＣＳＶファイルをドロップする。
![B20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/0fc8ba93-45cf-e8fc-d2a8-c5b3f0b74e1c.png)

ＣＳＶファイルが読み込まれた。
![B21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/b8bc1f28-9be5-fe3b-89ab-70d2558d6904.png)


![B22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/5c9215ed-8e30-1ab6-8b7b-23fe0997e3f8.png)

Show column detailsを押す。
![B24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/ac279d13-802d-12dc-d4d8-a208ea132485.png)

詳細が表示された
![B25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/76bb628d-75b9-b768-9251-ef829e8bdd94.png)
![B26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/37175905-7256-ef4e-cd2d-0191fc5d7dc0.png)

Show example queryを押す
![B28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/8236f097-52c6-032a-6c8d-eacf19fba814.png)

クエリーの入力画面が表示される
![B29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/b7b2e53a-16e5-2a13-6e9f-11bf76ca1243.png)

以下のクエリーが入力されていた。
![B30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/6004935a-cca8-753d-7137-a73e38831dca.png)

Run Queryを押す。
![B31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/b8cbbf25-0efb-a7e7-b830-e2ee6365eac7.png)

Resultを押す。おー。ちゃんと抽出できた。
![B32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/eb17f47c-9c07-c09f-66f2-0e66c7efc2a5.png)
![B32-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/48c1e541-78dc-c04d-7356-362c7b889728.png)

メニューに「肉」の文字があるものを抽出する。
![C01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/5168c8c0-a9e9-3b3d-5c1c-d9719992dd8f.png)
カロリー高い。
![C02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/cd012cdb-f079-2523-46f1-0cf0bcc49915.png)

メニューに「魚」の文字があるものを抽出する。
![C03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/b1707472-1f90-ca7b-1dfd-47f6d803206e.png)
魚を選べば、1000Kcalは超えないようだ。
![C04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/b47c7bae-a7e6-2b0e-da5d-d95dc626a195.png)

カロリー順に並べてみようとしたが、Freeプランではできないようだ。
![C05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/90363a0e-a5b3-9c88-5c80-7a08b899be6f.png)

800Kcal未満を抽出してみる。しょうが鍋定食がカロリー低くて、よさそうだ。
![C06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/c938f1a7-9567-8100-c9d5-67bc084fdc66.png)
![C08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/22e21c3a-ce99-f979-954d-5b17e892fd08.png)

とういうわけで、やよい軒の定食のカロリーデータをdelikaに登録できた。


# カロリーデータの取得とdelikaへの取り込み　すき家

次はすき家　PDF形式だ。

https://images.zensho.co.jp/materials/sukiya/allergen/nutrition.pdf


![H01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/449e7f2f-2daa-f280-b5c5-fe01451a2a03.png)

どうしたものか、PDF。Excelでとりこんでみよう。
「データ」－「データの取得」－「ファイルから」－「PDFから」を選ぶ。
![D04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/461fd96d-3587-8542-f34d-1287c39efe6a.png)
PDFファイルを選ぶ。
![D05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/2fa2dab4-8d8d-b6b0-598b-c0c87f59b14a.png)
ナビゲーターが表示される
![D06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/29930956-4e9c-ff6d-bd6a-f8d706369cec.png)
Table001を選ぶ。おお、良さそう。「読み込み」を押す
![D07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/149773be-ccbb-4285-998f-368034535217.png)
![D08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/5a2de110-16e9-a32b-ecf5-5f8a92829385.png)
読み込まれた。でもB列が空欄。下の方の行をみてみる。
![D09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/73bd9e4d-25d6-e1bd-a020-a4b454183bcf.png)
んん？どうなってるの？
![D10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/0cf8e150-6400-60eb-65a8-427fd83a108e.png)
元のPDFをみてみる。これは・・・ｗ。すきすきセット（カットリンゴつき）
![D11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/0222d474-cb66-39a2-daf9-a4171360daf1.png)

「すきすきセット（カットリンゴつき）」はＣ列に手動でコピーして移動する。
![D12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/8ff1cd5e-2519-d2d8-b905-cb9bbfd63b2f.png)
B列は削除する。
![D13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/c48348ba-60e6-9591-fa52-3eabbd00db7a.png)
やよい軒の時と同じ操作で空白セルを埋める
![D14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/45512791-4650-b37f-3962-df3baf66d118.png)
![D15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/78fb1f98-a868-58e3-7627-92ab66790de8.png)
![D16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/0c27b914-35db-71f8-91be-9a44319a2493.png)
![D17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/5ea05025-aae6-6234-9d71-9c077e6bcef8.png)
![D18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/f37e8a33-4114-acab-6fc3-3bf284a35da0.png)
![D19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/e6a81a88-de42-5ffa-deee-3e396877d110.png)
![D19-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/fa8fe05c-80a8-c550-74ff-b67e12601f16.png)
空白セルが埋まった。
![D20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/4266439c-e346-f5de-5955-308abeea29e8.png)

ＣＳＶファイルに保存する。
![D21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/4562d30c-37ec-2120-1bdd-e43f75645b99.png)

やよい軒の時と同じ操作でdelikaに取り込む。んん？文字化け？
![E01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/af77d75f-8873-3d58-9233-cc599321a343.png)

ここでファイルの種類の選択を間違えていた
![D21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/4562d30c-37ec-2120-1bdd-e43f75645b99.png)
正しくはこちら
![E01-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/a9b96204-6b35-a859-9bc4-cd6a7d4e51bf.png)
こちらのＣＳＶ形式では正常に表示された
![E03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/26e4381d-b743-0c8c-a642-bc3338f41137.png)
クエリーを投げてみる
![E04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/f66d4b6f-ec3f-c9c3-c9c1-540793264c19.png)
んん？下から４行目から２行目の列がずれている・・・
![E05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/4339135b-7d52-a3b9-35ef-39507a0afd99.png)
該当箇所を確認してみると、改行が入ってしまっているようだ。
![E06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/2f9ac517-c4de-29f0-a104-3effdd32a493.png)

新しいシートに、改行を削除したものを作る。新しいシートのA1セルに以下のように入力し
![E08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/1ebf3207-8457-fabd-f895-9501feffccf4.png)
元のシートのA1セルを選択して
![E09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/3c24200c-bfa8-a423-eca1-c33f77efe95a.png)
Enterを押す。
![E10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/df11bbd5-bc56-c144-f9ff-9dbb8870b40c.png)
新しいシートの１行目全体にコピー
![E12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/dfae5265-b8a0-ff61-0378-6d0404a4ea64.png)
２行目も同様。
![E18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/e65e3716-f534-309f-f94f-e2dbfbb67d99.png)
![E19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/3579715d-364b-000b-4b61-9cf972ee1ebc.png)
![E20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/99ce230b-2ea8-951e-66f4-96643b8a8b11.png)
![E21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/8d5bc502-d268-6ba6-5a58-7da90633610e.png)

最後の行まで行全体をコピーする
![E23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/a88cb1c2-fbce-6026-36a5-24bab15a46a2.png)

最後の部分が元のものと一致しているか確認。
![E22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/7556e0d0-655a-9d1b-218e-f995dce9a97c.png)

新しいシートをCSV形式で保存する（今度はファイルの種類（エンコーディング）を間違えない、UTF-8を選ぶ）
![E24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/56dbb9f3-92da-f658-2bdc-d9cc55ce8ad5.png)

テキストエディタで開いて改行されていないことを確認。
![F00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/e0815f28-f723-3a17-bdda-04bc7dace557.png)

delikaに取り込んでクエリーを投げてみる。
![F05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/ca0c4403-0d22-9a3d-6979-a630dc1447b7.png)
![F06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/43b099cd-4374-204c-3b8b-3e445ea1157a.png)

今度は列がずれていない。すき家もdelikaへの取り込み、大成功！
![F07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/10c82f4e-5d59-80bb-366b-d651a609b4cc.png)

# カロリーデータの取得とdelikaへの取り込み　スシロー

カロリーはどこかにまとまって記載があるかな？
![G01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/1c2b0658-1c6b-8e02-acc5-b431e3ccbeff.png)
「「スシローのメニュー」から商品ごとに確認することができます」の記載。
これは、もしや一つづつ取得するしかない？
がーーん。Excelで横着できないじゃないか・・。
![G02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/150dd99f-8219-d5f5-827b-275bf4b818bc.png)

これ一個づつ取得するしかなさそう・・・。
![H02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/04224670-7cb7-7e43-ffa8-9fe89b9c5548.png)

Scrapyを使ってみる。

https://scrapy.org/

スシローのメニューのWebページの構造を確認して、メニューの名称とカロリーの箇所のXPathを求める。
Chromeのその他ツールから「デベロッパーツール」を選ぶ
![G03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/3f2702b9-b3f3-3b0a-58cc-f449d3b0ce5e.png)

右側に表示されているこのアイコンを押す。
![G04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/eb02d45f-acaa-1ebb-2f03-71436ff1a6c8.png)
カロリーの箇所をクリックする。
![G05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/697947ad-1a26-421b-5184-88c56faba530.png)

XPATHは　//span[@class="price"][position()=last()]/text()　で良さそう。
![G06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/25f477a7-d722-f57d-119b-33987fd4df96.png)

タイトルの箇所をクリックする。
![G07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/516e53da-62c6-0820-b85e-c72e7c1ef0fb.png)

![G08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/5e6a4fa9-673b-453c-0803-2b735bde63f2.png)

XPATHは　//span[@class="ttl"]/text()　で良さそう。
![G09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/d2201220-7da1-c359-7332-56e8b0aff411.png)

Scrapyをインストールする。
```console
$ pip install scrapy
```

```console
$ scrapy version
Scrapy 2.7.1
```

プロジェクトを作成する。
```console
$ scrapy startproject susiro
New Scrapy project 'susiro', using template directory '/Users/takaraya/opt/anaconda3/envs/scrapy_env/lib/python3.8/site-packages/scrapy/templates/project', created in:
    /Users/takaraya/pythonscrapy/susiro

You can start your first spider with:
    cd susiro
    scrapy genspider example example.com

```


```console
$ cd susiro 
$ scrapy genspider susiro_menu www.akindo-sushiro.co.jp      
Created spider 'susiro_menu' using template 'basic' in module:
  susiro.spiders.susiro_menu
```

susiro_menu.pyを開く
![スクリーンショット 2022-12-25 16.34.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/5e2cbb97-4800-e878-f085-b74d417d17af.png)

start_urlsをスシローのメニューのURLに修正する　httpsに注意。
![スクリーンショット 2022-12-25 16.36.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/d5039af5-8b43-f320-c0b4-f746bbbe7add.png)

def parseの中にさきほどchromeで調べてXPATHで、メニューとカロリーを取得するコードと、CSVで書き出すコードを追加する。
![スクリーンショット 2022-12-25 17.25.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/ed4207d3-0bb5-a116-28f0-327ffea53f7b.png)

susiro_menu.pyを拡大すると以下のような内容。
```python 
import scrapy


class SusiroMenuSpider(scrapy.Spider):
    name = 'susiro_menu'
    allowed_domains = ['www.akindo-sushiro.co.jp']
    start_urls = ['https://www.akindo-sushiro.co.jp/menu/']

    def parse(self, response):
        menu = response.xpath('//span[@class="ttl"]/text()').getall()
        cal = response.xpath('//span[@class="price"][position()=last()]/text()').getall()
        
        data = yield {
            'menu' : menu,
            'cal' : cal
        }
        
        for menu, cal in zip(menu, cal):
            print('"'+menu+'","'+cal+'"')
```

以下のコマンドでクロールを実行する。
```console
$ scrapy crawl susiro_menu>susiro.csv
```
保存されたsusiro.csvを開いて、Webページと照合する。正しく抽出されているようだ。
![スクリーンショット 2022-12-25 17.30.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/0a9fceef-a9c8-fdfd-1e22-5d6180e0a9a4.png)
最後の部分も確認する。正しいようだ。
![スクリーンショット 2022-12-25 17.32.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/5108e7ce-96e2-f299-76ab-1741517d71a0.png)

CSVファイルを開いて１行目に列名menuとcalを追加してcsv形式で保存する。
![スクリーンショット 2022-12-25 17.39.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/d8583328-fa07-212f-0d5b-c5abe8e23c7b.png)

delikaに取り込む。スシローもうまく取り込めた。
![スクリーンショット 2022-12-25 17.42.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1032713/a7019d99-5d39-916c-da05-6774e9f6ecba.png)

あー、おなかがすいた。

# まとめ

カロリーの記載が、やよい軒はhtmlの表、すき家はPDFの表、スシローはWebページ内にバラバラに存在と、それぞれまちまちな形式でしたが、いずれも、簡便な方法で、うまくスクレイピングして、delikaに取り込むことができました。
最初は手間取りますが、慣れればそんなに時間はかからず、取り込めそうです。
これでメタボにならないメニュー選びもできるかも。
delikaは、非常に分かりやすく、取り込みが容易でした。

みなさんもさまざまな外食のチェーンのカロリーを取り込んでいただき、活用させてもらえるとありがたいなと感じました。