質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

703閲覧

GASでのスクレイピング

rock_9999

総合スコア3

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/08/14 06:26

前提・実現したいこと

Google Apps Scriptで航空会社の運航状況のサイトをスクレイピングしたいと思ってます。
URL https://api.cathaypacific.com/flightinformation/flight-status/olss-flight-status/v4.0/flightStatusByFlightNumber
必要な情報をPOSTしましたが、エラーが返されました。

発生している問題・エラーメッセージ

{"timestamp":"2019-08-14 14:22:34","status":400,"error":"Bad Request","exception":"org.springframework.http.converter.HttpMessageNotReadableException","message":"Could not read document: Unrecognized token 'travelDate': was expecting 'null', 'true', 'false' or NaN\n at [Source: java.io.PushbackInputStream@11423404; line: 1, column: 12]; nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'travelDate': was expecting 'null', 'true', 'false' or NaN\n at [Source: java.io.PushbackInputStream@11423404; line: 1, column: 12]","path":"/olss-flight-status/v4.0/flightStatusByFlightNumber"}

該当のソースコード

function POST(){

var payload =
{
"travelDate" : "2019-08-13",
"carrierCode":"",
"flightNumber":"208",
"locale":"ja_JP",
"departureArrival":"D"
};

var postheader = {
"useragent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36",
"accept":"application/json, text/plain, /"
}

var options =
{
"method" : "post",
"headers": postheader,
"payload" : payload,
"muteHttpExceptions" : true,
"contentType":"application/json;charset=UTF-8"
};

var res = UrlFetchApp.fetch("https://api.cathaypacific.com/flightinformation/flight-status/olss-flight-status/v4.0/flightStatusByFlightNumber", options);
Logger.log(res.getContentText())
}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

合法なんですよね、これ?

payloadの指定を↓このようにしてみてください

javascript

1 //"payload" : payload, 2 "payload" : JSON.stringify(payload),

投稿2019/08/19 08:27

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

travelDateというトークンは認識できない、というエラーですが、パラメータあってますか?
apiドキュメントのリンクを提示してください

投稿2019/08/14 09:41

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rock_9999

2019/08/14 10:39

ご回答ありがとうございます。 当方、スクレイピングを始めたばかりで、apiドキュメントがピンと来ません。 キャセイパシフィックの公式サイトの運航状況をスクレイピングしたいです。 https://www.cathaypacific.com/cx/ja_JP/manage-booking/flight-status.html chromeの検証で見てみたのですが、https://api.cathaypacific.com/flightinformation/flight-status/olss-flight-status/v4.0/flightStatusByFlightNumberにデータをポストしているみたいなのですが、関係はありますでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問