我正在尝试编写一个简单的脚本,从网页中获取文本并处理该字符串。但是,那个网站需要我登录。我成功登录了那个网站。这是我登录的方式:
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 的正确方法的帮助。