Login 如何使用谷歌应用程序脚本登录到外部网站?
我正在尝试登录一个网站,这样我就可以把数据拉回到谷歌文档电子表格中。我在这里读过很多帖子,但我不知道如何识别需要传递的数据 该站点的登录页面有一个包含以下字段的表单Login 如何使用谷歌应用程序脚本登录到外部网站?,login,google-apps-script,Login,Google Apps Script,我正在尝试登录一个网站,这样我就可以把数据拉回到谷歌文档电子表格中。我在这里读过很多帖子,但我不知道如何识别需要传递的数据 该站点的登录页面有一个包含以下字段的表单 <form action="https://fantasyfootball.telegraph.co.uk/premierleague/log-in/" method="post" id='reg-form'> <fieldset class='login'> <
<form action="https://fantasyfootball.telegraph.co.uk/premierleague/log-in/" method="post" id='reg-form'>
<fieldset class='login'>
<div class="required">
<label for="email">Email:</label>
<input type="text" name="email" id="email" class="input-text" size="10" maxlength="50" value="my.name@address.com" />
</div>
<div class="required">
<label for="pass">Password:</label>
<input type="password" name="pass" id="pass" class="input-password" size="10" maxlength="15" value="some-password" />
</div>
</fieldset>
<div id="remember-me-container">
<input type="checkbox" checked="checked" id="remember-me" name="remember-me" value="remember-me" />
<label for="remember-me" id="remember-lbl">Remember me</label>
</div>
<input type="submit" id="submit-btn" value="Login" name='Submit' class='btn'/>
</form>
如果您有任何建议,我们将不胜感激。我从未能够将
sessionDetails
按原样发送回网站。我一直在使用RegEx提取sessionDetails
的相关部分,并创建一个新的cookie字符串,然后将其发送回站点。要找出cookie的哪些部分是相关的,请使用浏览器的网络日志(在开发人员工具中)检查浏览器为cookie发布的内容,并将该字符串与sessionDetails
进行比较。我贴了一个例子
这里有一个使用应用程序脚本处理cookies的示例,可能是您正在寻找的,谢谢,我没有打开该链接。我意识到我需要包括所有表单字段,所以我在选项列表中添加了“提交btn”:“登录”,但它仍然不起作用。我是否正确地假设需要进入选项的是输入的“id”和“值”?我得到的响应代码是200,getAllHeaders()中没有cookie数据。我已经手动验证了密码是正确的,所以我仍然很困惑。@IanShaw你发现了吗?
// Returns the html of the page.
function sGetPage (sUrl) {
var url = "https://fantasyfootball.telegraph.co.uk/premierleague/log-in/";
// logging in, following http://stackoverflow.com/questions/21621019/google-apps-script-login-to-website-with-http-request
var payload =
{
"email" : "ian.shaw@iee.org",
"pass" : "asdf123",
"submit-btn": "Login",
"remember-me" : "remember-me"
};
var options =
{
"method" : "post",
"payload" : payload,
"followRedirects" : false
};
var login = UrlFetchApp.fetch( url, options);
var sessionDetails = login.getAllHeaders()['Set-Cookie'];
Logger.log(sessionDetails);
var response = UrlFetchApp.fetch ("https://fantasyfootball.telegraph.co.uk/premierleague/leagues/view/8000912/4015677/", {"headers" : {"Cookie" : sessionDetails} });
var sHtml = response.getContentText();
Logger.log(sHtml);
}
var login = UrlFetchApp.fetch(url, options);
var sessionDetails = login.getAllHeaders()['Set-Cookie'];
Logger.log(sessionDetails);
var cookie = sessionDetails.match(/Asp\.NetSessionId=[A-Z0-9]+;/)[0]; //modify this RegEx as needed
var response = UrlFetchApp.fetch(
"https://example.com",
{"headers" : {"Cookie" : cookie} }
);