Я пытаюсь написать простой script, который извлекает текст с веб-страницы и обрабатывает эту строку. Но для этого веб-сайта мне необходимо войти в систему. Мне удалось войти на этот сайт. Вот как я вошел в систему:
var payload = {"name1":"val1","name2":val2"};
var opt ={"payload":payload,"method":"post"};
var respose = UrlFetchApp.fetch("http://website.com/login",opt);
После входа в систему сайт помещает меня в http://website.com/home
. Я проверил response.getContentText()
, и я могу подтвердить, что я был успешно зарегистрирован, так как он содержит текст из http://website.com/home
.
Теперь мне нужно получить содержимое http://website.com/page
и обработать его.
Сначала я предположил, что script может обрабатывать файлы cookie сам по себе и приступил к работе
var pagedata = UrlFetchApp.fetch("http://website.com/page);//Did not work
Это явно не сработало, и pagedata.getContentText()
говорит мне сначала войти в систему, что указывает, что файлы cookie не были успешно переданы.
Затем я попытался извлечь файлы cookie, которые сервер ответил во время входа в систему, и отправить его вместе с этим запросом.
var cookie = response.getAllHeaders()['Set-Cookie'];
// variable cookie now contains a legitimate cookie.
// It contains 'JSESSIONID=blabla;Path=/' and
// it is the ONLY cookie that server responds.
Я попытался отправить этот файл cookie в мой запрос на страницу.
var header = {'Cookie':cookie};
var opt2 = {"header":header};
var pagedata = UrlFetchApp.fetch("http://website.com/page",opt2);
Я думаю, что даже сейчас cookie не отправляется должным образом, так как контент снова говорит мне, что я должен войти в систему.
Я передаю файлы cookie правильно? Мне нужна помощь относительно правильного метода отправки файлов cookie в запросе.