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

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

新規登録して質問してみよう
ただいま回答率
85.31%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Google Apps Script

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

Q&A

解決済

1回答

2775閲覧

GASのUrlFetchAppを利用したスクレイピングについて

help_heaven

総合スコア9

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Google Apps Script

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

0グッド

0クリップ

投稿2022/02/24 05:41

ある特定のサイトが、UrlFetchAppを利用してスクレイピングしようとしても302リダイレクトで目的のページが表示されず、スクレイピングできません。
数ヶ月前までは問題なくスクレイピングで来ていました。
自宅のローカルPCからpythonでseleniumやBS4でスクレイピングできます。
curlでもページソースを取得できました。
GASのUrlFetchAppのみ弾かれます。

function gethtml() { var data = UrlFetchApp.fetch("https://表示したいページ.com",{muteHttpExceptions:false}); Logger.log(data) }

を実行すると

muteHttpExceptions:true で

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>302 Found</title> </head><body> <h1>Found</h1> <p>The document has moved <a href="https://表示したいページ.com/">here</a>.</p> </body></html>

falseだと

Exception: Request failed for https://表示したいページ.com returned code 302. Truncated server response: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>302 Found</title> </head><body> <h1>Found</h1> <p>The document has moved <a ... (use muteHttpExceptions option to examine full response)

というエラー内容です。

色々調べて自宅PCからseleniumでユーザーエージェントをUrlFetchAppと同じにしてみてもページソースを取得できました。
自宅のブラウザでデベロッパーツールで確認してもリダイレクトを挟むような処理はされていません。

問題の切り分けを行うため海外プロキシからアクセスしたらリダイレクトループされました。
google colabからpythonのrequestsしても同じようにリダイレクトループです。

私がスクレイピングしたいサイトが、海外からのアクセスを遮断していると理解すればいいでしょうか?
GASが手軽に利用できる無料インフラなのでこれからも利用したいので回避方法があれば教えてほしいです。

GASやcolabで回避できない場合、AWSの国内のリージョンからならスクレイピングできる可能性があるかどうかも教えてほしいです。
よろしくおねがいします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

私がスクレイピングしたいサイトが、海外からのアクセスを遮断していると理解すればいいでしょうか?

おそらくそのとおりです。

GASやcolabで回避できない場合、AWSの国内のリージョンからならスクレイピングできる可能性があるかどうかも教えてほしいです。

「すでに塞がれている」可能性も、「今はできてもそのうち塞がれる」可能性もあります。

投稿2022/02/24 07:58

maisumakun

総合スコア146557

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問