Googleの広告枠管理の一貫で、販売者情報を提供した時の事。
その際参考にしたのが「sellers.json で販売者情報を提供する」のページ。
一通り登録したものの、上手く登録されたのか確認したいのが人間。
参考にしたページの最後にも
ご自身の情報を見つける方法
- Google の sellers.json ファイルを開きます。
- Ctrl+F(Mac の場合は Command ⌘+F)キーを使って、ご自身の
seller_id
を検索します。 - 情報を確認します。
とあるので早速試してみた。
しかし残念ながら、データ量が多すぎるのかブラウザがすぐに固まってしまう。
何度やっても埒が明かなかったが、最近知ったcurlをターミナルで使ったらどうだろう?と思って早速curlコマンドを使ったらあっさり全データを取得出来た。
$ curl https://storage.googleapis.com/adx-rtb-dictionaries/sellers.json { "contact_email": "sellers_json@google.com", "contact_address": "1600 Amphitheatre Parkway Mountain View, CA 94043", "identifiers": [{ "name": "T*******", "value": "f****f*********" }], "version": "1.0", "ext": { "notice": "This file is a beta and is unverified." }, "sellers": [{ "seller_id": "pub-0000*************", "is_confidential": 1, "seller_type": "XXXXXXXXX" }, { 〜中略〜 }, { "seller_id": "pub-99***************", "is_confidential": 1, "seller_type": "XXXXXXXXX" }] }%
しか〜し、出力出来たのは出来たものの、データ量が多すぎて探すのも一苦労。スクロールしまくって見つける事が出来ましたが、せっかくなのでこんな力技以外の方法を。
そう、grepコマンドです。
まずはcurlでGETしたデータを、パイプで繋いだ先のgrepコマンドで、求めるワード”pub-********(番号は伏せています)”を”含んだ行”を探すコードはこちら。
$ curl https://storage.googleapis.com/adx-rtb-dictionaries/sellers.json | grep --color 'pub-******************'
grepの後に–colorを付ける事で、行の中に含まれる、求めるワードを色付けて分かり易くしてくれます。
このコマンドで出力するとこうなります。
$ curl https://storage.googleapis.com/adx-rtb-dictionaries/sellers.json | grep --color 'pub-******************' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 55 134M 55 73.9M 0 0 9154k 0 0:00:15 0:00:08 0:00:07 9924k "seller_id": "pub-******************", 100 134M 100 134M 0 0 9721k 0 0:00:14 0:00:14 --:--:-- 10.1M
大量にあったデータから、求めていた’pub-******************’を含む”seller_id”: “pub-******************”
と言う一行が抽出されている事が分かります。
因みに、この「pub-******************」の部分には–colorコマンドのお陰で色が付いています。
さて、この一行が出力されたのですが、最初に引用した全データと見比べた所、この行だけでは物足りない事が分かります。
そう、前後の行も合わせて抽出して、”is_confidential”と”seller_type”も確認したい。
調べた所、”-Ax”を追加することで、grepで抽出した行からx行分後のデータを、”-Bx”を追加することで、同抽出した行のx行前のデータから、抽出する事が出来る様です。
と言う事で前1行と後ろ3行を取得できる様に修正したコードで出力するとこの通り。
$ curl https://storage.googleapis.com/adx-rtb-dictionaries/sellers.json | grep --color -A3 -B1 'pub-******************' % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 55 134M 55 74.0M 0 0 9942k 0 0:00:13 0:00:07 0:00:06 9.7M }, { "seller_id": "pub-******************", "is_confidential": 1, "seller_type": "XXXXXXXXX", }, { 100 134M 100 134M 0 0 9.8M 0 0:00:13 0:00:13 --:--:-- 9581k
必要最小限にして十分に前後の行を抽出する事が出来ました。(“-B2″にした為余分な行が入っていたので”-B1″に修正しました(8/25))
出力データ形式が決まっていると、前後の何行が必要なのか良く分かります。
以上、ブラウザで扱うデータが多過ぎて立ち往生した場合、ターミナルでcurlからのgrep -Ax -Bxが1つの解決策になった例。
情報共有して下さる皆様に感謝。
コメント