ワインのデータをスクレイピングする(vinica編)

831 語
4 分
ワインのデータをスクレイピングする(vinica編)

はじめに#

僕は今まで自分が飲んだワインの情報をメモしています。

そして、一時期に週2くらいで飲んでいたときに、そのメモを取るのがめんどくさくなったので、一気にワインの情報を集められるようにスクリプトを作成しました。

そして、このスクリプトで取得したデータをGoogle Spreadsheetに貼り付けて、以下のように管理しています。

今回は、そのスクリプトを紹介します。

このスクリプトは開発者ツールで実行します。

以下になります。

ソース#

// code by utf-8
// Use Developer Tool(by ⌥⌘I)
var length_of_taste = 'taste-bar taste-'.length;
var array = [`${[...document.querySelectorAll('span')][4].innerText}`, // ワイン名
today.getFullYear() + "/" + today.getMonth() + 1 + "/"+ today.getDate(), // 出会った日
``, // Instagramに上げた日
``, // 製造年
`${[...document.querySelectorAll('td')][21].innerText}`, // 色
``,// 醸造方法
``,// 金額
``,// 入手場所
``,// 最寄り駅
`${[...document.querySelectorAll('td')][18].innerText}`, // 原産地
``,// 原産国
``,// 感想
``,// ハッシュタグ
`${[...document.querySelectorAll('td')][20].innerText}`, // 備考
location.href, // 参考1
``,// 参考2
``,// Instagramに貼り付け
``,// vinicaフォルダに入れた
`${[...document.querySelectorAll('div')][27].className}`.substr(length_of_taste,1), // ボリューム(軽い<重い)
`${[...document.querySelectorAll('div')][28].className}`.substr(length_of_taste,1), // タンニン(控えめ<強い)
`${[...document.querySelectorAll('div')][29].className}`.substr(length_of_taste,1), // 甘み(ドライ<甘い)
`${[...document.querySelectorAll('div')][30].className}`.substr(length_of_taste,1), // 酸味(まろやか<シャープ)
`${[...document.querySelectorAll('div')][31].className}`.substr(length_of_taste,1) // 果実味(スパイシー<フルーティ)
];
var sep = "\t";
var data = ``;
array.forEach(function(value) {
data += value;
data += `${sep}`;
});
// This is it!
console.log(data);

以下、コードの解説ですが、

基本的にこの表記でどのタグの何番目のものを取得するかを指定します。

`${[...document.querySelectorAll('span')][4].innerText}`

下の場合だと、4番目のspanから取得します。

この「${~}」の表記は、querySelectorやquerySelectorAllなどの関数を調べているときに偶然見つけました。調べた当初は、この書き方のメリットをほとんど理解しておらず、たまたま自分にしっくり来たので、この表記に落ち着いていましたが、最近少し理解が進んだので、それはまた今度書きます(笑)

そして、タブ文字(”\t”)を区切り文字として、配列arrayを文字列にします。

最後、consoleに出力しておしまい。

原産国の部分とかは、「=IFERROR(LEFT(K2, FIND(“>”,K2)-2),K2)」とかやって、隣のセルから取ってきています。これで集計すると自分がどの国のワインを今まで飲んでいるかが分かるといった感じです。

おしまい#

今回のスクリプトの紹介はこんなもので終了です。

そして、このスクリプトを実行できない場合は、下に備忘録的なものを貼っておくので、見てみて下さい。

以上になります!

また、ワインの5つのパラメータに関する記事は以下に掲載していますので、よければ見てみて下さい!

開発者ツールの立ち上げ方#

  1. 取得したいサイトに行く。今回使ったワインのページは、ここですが、別途取得したいワインがあれば、それをvinicaのサイト内で調べてそのワインのページに行く。
  2. ブラウザ上で、Ctrl + Shift + C を押す。開発者ツールが立ち上がります。
  3. ページ内の欲しい情報がある要素にマウスを合わせるとハイライトされるので、その状態でクリック。
  4. 開発者ツール内のコンソールで、このスクリプトを実行。

記事を共有

この記事が役に立ったなら、ぜひ他の人と共有してください!

ワインのデータをスクレイピングする(vinica編)
https://endorphinbath.com/posts/wine-scraping-vinica/
著者
kinkinbeer135ml
公開日
2021-10-20
ライセンス
CC BY-NC-SA 4.0
関連記事 スマート
1
ワインのデータをスクレイピングする(Vivino編)
Code VivinoというサイトにあるワインのデータをExcelやGoogle Spreadsheetなどに貼り付けられる形式に取得できるスクリプトを紹介します。
2
【JavaScript】実行中の関数自身の関数名を取得する
Code 実行している関数やメソッド自身の名前を取得する方法を紹介します。この方法は、その関数名を取得する関数を別の関数から呼び出してもらわなければなりません。thisに関数をバインドする必要があるためです。その呼び出し方の種類を掲載しています。
3
【JavaScript】Errorタイプのオブジェクトかどうかを判定する
Code JavaScriptで渡した値がErrorオブジェクトかどうかを判定する関数が見つからなかったので、僕が書いたものを紹介します。
4
【Node.js】Markdown内のimgタグの画像の大きさを変える
Code README.md内のimgタグで記載された画像のサイズを変更する処理を作成しました。沢山画像を貼っていると、いちいちサイズを変更するのが面倒ですが、この処理で一気に直してしまいましょう!
5
【JavaScript】数値を0埋めされた文字列として加工する
Code JavaScriptで、IDなどを採番する時に0埋めした数値が欲しい時があります。その時に利用できるスニペットを紹介します。
ランダム記事 ランダム
Profile Image of the Author
kinkinbeer135ml
SIerをやめて、プログラミングを勉強しています。※Amazonアソシエイトに参加しています。
お知らせ
私のブログへようこそ!これはサンプルのお知らせです。
音楽
カバー

音楽

再生中なし

0:00 0:00
歌詞なし
カテゴリ
タグ
サイト統計
記事
287
カテゴリー
8
タグ
93
総文字数
486,174
運用日数
0
最終活動
0 日前

目次