ある特定のサイトが、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の国内のリージョンからならスクレイピングできる可能性があるかどうかも教えてほしいです。
よろしくおねがいします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。