我正在尝试编写一个简单的脚本,从网页中提取文本并处理该字符串.但是,该网站要求我登录.我成功登录该网站.这是我登录的方式:
var payload = {"name1":"val1","name2":val2"};
var opt ={"payload":payload,"method":"post"};
var respose = UrlFetchApp.fetch("http://website.com/login",opt);
Run Code Online (Sandbox Code Playgroud)
登录后,该网站将我置入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
Run Code Online (Sandbox Code Playgroud)
这显然没有用,并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.
Run Code Online (Sandbox Code Playgroud)
我试图在我的页面请求中发送该cookie.
var header = {'Cookie':cookie};
var opt2 = {"header":header};
var pagedata = UrlFetchApp.fetch("http://website.com/page",opt2);
Run Code Online (Sandbox Code Playgroud)
我想即使现在cookie也没有正确发送,因为内容再次让我登录.
我正确地传递了cookie吗?关于在请求中发送cookie的正确方法,我需要帮助.