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

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

新規登録して質問してみよう
ただいま回答率
85.30%
GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

Google Apps Script

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

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

1886閲覧

[GAS]UrlFetchAppにおいて、RESTでは応答が帰ってくるサイトが、GASでは帰ってこない。

Gorilla

総合スコア0

GET

GETとはHTTPが対応するリクエストメソッドの一つです。クライアントからサーバーへ送られたURLパラメータのデータを取得する時必要がある時に使われます。

Google Apps Script

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

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2022/10/04 04:46

前提

GASにてモノタロウサイトをスクレイピングしようとしてます。
スクレイピングを実行すると応答が帰ってこず困っております。

  • GAS 以外のツールで取得できることを確認済み。
  • GASは他のURLにて、取得出来ることを確認済み。

実現したいこと

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

GASにて実行すると以下の状態で、止まってしまう。(他サイトURLでは取得できることを確認済み)

イメージ説明

該当のソースコード

javascript

1function monotaroTest() { 2 // URLフェッチ 3 // スクレイピング対象のURLを指定 4 let URL = "https://www.monotaro.com/api/item/2.0/lookup?monotaro_no=08509907&response_group=2"; 5 const res = UrlFetchApp.fetch(URL); 6 console.log(res); 7}

試したこと

Chrome アプリ 「Advanced REST Client」にて取得可能なURLかを確認。
結果 問題なく応答が来ていることを確認済み。
イメージ説明

補足情報(FW/ツールのバージョンなど)

エラーメッセージ等がGASより出力されないため、問題点がわからず困っております。
もしわかる方いらっしゃいましたら、回答いただければ幸いです。

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

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

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

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

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

Zuishin

2022/10/04 04:57

対策されてるんじゃないですかね。 そもそもそんなことやっていいんですか?
Gorilla

2022/10/04 05:03

Googleからのアクセスを弾いている可能性は、考えられます。 スクレイピングについて、違法性を認識していないのですが、どういった違法性があると思われますか?(相手側サーバー負荷を考慮した上で)
Zuishin

2022/10/04 05:07

違法でなければ何をやってもいいわけではありませんが、規約で禁止されているなら契約不履行の不法行為にはなりそうです。 法的な詳細は専門家に聞いてもらうとして、まずそれがサイトに許可された行為なのかを自分で調べてください。
Gorilla

2022/10/04 05:14

モノタロウ自体に、スクレイピングに関する規約は確認した限りは、存在しませんでした。 スクレイピング自体は、ご存知のようにサイトアクセスした際の情報をプログラムにて取得する手法なため、違法な情報にアクセスしている状態ではありません。 またサイト側に異常な負荷をかけるような処理も行っていないため、問題はないと認識しています。 公開されたサイト情報に、GASを用いて取得する点についてその他違法性等があれば、ご教授いただければ幸いです。
Zuishin

2022/10/04 05:24

スクリプトに問題ないことが他サイトで確認できているなら、そのサイトの問題ということになると思います。それがサイト管理者による意図的な対策であれば、法的にどうこういう問題ではないと思いますが、調べて(問い合わせて)みましたか? 理屈を言って無理やり突破しても、対応作が更新されればうごかなくなる可能性があります。 問題がないかどうかは、スクレイピングをする側が決めることではありません。
YAmaGNZ

2022/10/04 07:22

(3)本サービスに接続しているサーバーもしくはネットワークを妨害、混乱させる行為 (4)手段を問わず、本サービスの運営を妨害する行為 このあたりがそういう意図がなかったとしてもひっかかりそうな規約ですね
Gorilla

2022/10/04 09:00

monotaroから、「robot.txt」が公開されていたので貼っておきます。 https://www.monotaro.com/robots.txt 私が無知でしたが、上記テキストファイルにスクレイピング等を用いる際のルールが記載されているようです。(robots.txtとは https://developers.google.com/search/docs/crawling-indexing/robots/intro?hl=ja) モノタロウのrobots.txtを確認したところ、今回スクレイピングしようとしている「/api/item/」は「Disallow」に含まれていないため問題ないと思われます。
Zuishin

2022/10/04 09:03

CORS で禁止されてるなら問題あるでしょう。
Gorilla

2022/10/04 10:31

スクレイピングにおいて、CORS制約がかかっている場合、どの点が問題が発生するのかご教授いただきたいです。
Zuishin

2022/10/04 10:55

セキュリティ目的で制約をかけているというのをわかりやすく言うと、家に家族以外が入れないよう鍵をかけるようなものです。 その場合、呼び鈴を押して許可を得るのが正しい入り方で、穴を探して忍び込むのは間違ったやり方です。 管理者の許可を得てください。 許可が得られないのであれば、それは行ってはいけないことです。 本当にこの説明、必要ですか?
guest

回答1

0

レスポンスヘッダに strict-origin-when-cross-origin が設定されているので、CORS の制約がかかってますね
https://developer.mozilla.org/ja/docs/Web/HTTP/CORS

投稿2022/10/04 07:40

phper.k

総合スコア3923

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

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

Gorilla

2022/10/04 08:52

有力な情報ありがとうございます。 CORS エラーであるとわかったので、CORSエラーを回避する方法を探ってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問