Я пытаюсь написать простой скрипт, который извлекает текст с веб-страницы и обрабатывает эту строку. Но этот веб-сайт требует, чтобы я вошел в систему. Мне удалось войти на этот веб-сайт. Вот как я вошел в систему:
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
и обработать его.
Сначала я предположил, что скрипт может обрабатывать файлы 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 в запросе.