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

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

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

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

Q&A

0回答

1165閲覧

GASでログインのあるサイトのスクレイピング

hiro12190204

総合スコア0

Google Apps Script

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

1グッド

1クリップ

投稿2021/12/02 07:46

前提・実現したいこと

プログラミング初心者です。
GASでログインのあるサイトのスクレイピングをしたいと思ってます。

初心者のため説明が足りない箇所あるかと思いますが、助けていただけますと幸いです。

よろしくお願いいたします。

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

以下のサイトを参考にログイン処理を行おうとしたところ
ログインが正しくできていないみたいで正しいcookieの取得が出来ず
ログイン情報を保持した状態でログインができませんでした。
https://admin-it.xyz/gas/scraping-login-session/

ログイン処理の後返ってくるHTMLを確認するとログイン画面のHTMLが返ってきており
ログインに失敗してしまっております。

スクレイピングしたいサイトは以下になります。
http://160.16.214.89/tool/login.php

該当のソースコード

function myFunction() {
Logger.log("start");

var payload = {
"user" : "ユーザ名",
"pass" : "パスワード",
}

// POSTオプション
var options = {
"method" : "POST",
"payload" : payload,
"followRedirects" : false
}

var url = "http://160.16.214.89/tool/login.php"

var response = UrlFetchApp.fetch(url, options);
Logger.log(response);

var cookies = response.getHeaders()["Set-Cookie"];
var headers = { 'Cookie' : cookies };

options = {
method : "get",
headers : headers,
followRedirects: true, //リダイレクトあり
};

var topUrl = "http://160.16.214.89/tool/index.php"
response = UrlFetchApp.fetch(topUrl, options);
var content = response.getContentText("UTF-8");

Logger.log(content);
}

試したこと

フォームの送信方法が<input type="submit"ではなくbuttonで行っているため上記の方法ではできない
のかと思いましたが調べてみても打開策が見つけれらませんでした。

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

Jetson_Pose👍を押しています

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問