如何使用 Google Apps 脚本登录外部网站?

2024-03-09

我正在尝试登录网站,以便将数据拉回 Google 文档电子表格。我在这里阅读了各种帖子,但我不知道如何识别我需要传递的数据。

该网站的登录页面有一个包含以下字段的表单。

<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="[email protected] /cdn-cgi/l/email-protection" />
            </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 始终返回为“未定义”。

// 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" : "[email protected] /cdn-cgi/l/email-protection",
 "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); 

}

任何意见,将不胜感激。


我一直无法发送sessionDetails按原样返回网站。我一直在使用正则表达式来提取相关部分sessionDetails并创建一个新的 cookie 字符串,并将其发送回站点。要找出 cookie 的哪些部分相关,请使用浏览器的网络日志(在开发人员工具中)检查浏览器为 cookie 发布的内容,并将该字符串与sessionDetails。我发布了一个例子here https://stackoverflow.com/a/54332161/.

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} }
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Google Apps 脚本登录外部网站? 的相关文章

随机推荐

  • 在 Gradle 和 IntelliJ 2016.3.5 中使用断点调试 JVM 应用程序(Java 或 Scala)

    我有一个 JVM 应用程序 需要在 IntelliJ 2016 3 5 中使用断点和 Gradle 任务 作为依赖项运行和测试 进行调试 关于如何使用 Gradle 和 IntelliJ 完成调试有多种来源 使用 IntelliJ 调试 G
  • Redis 作为消息代理

    Question 我想以发布 订阅的方式在应用程序之间传递数据 数据产生的速度可能比消耗的速度高得多 并且消息会丢失 这不是问题 想象一下一个快速传感器和一个慢速传感器数据处理器 为此 我使用 redis pub sub 并编写了一个充当订
  • 更改 KeyPress 上 JTextField 的大小

    当用户在文本字段中输入文本时 我必须扩展 KeyPressed 事件上 JTextField 的大小 请告诉我如何实现此目的 提前致谢 好的 跳起来 我们假设问题是 如何调整 JTextField 的宽度以始终适合其内容宽度 平时的合作者
  • p:commandButton 立即 = true

    当我声明时会采取什么行动immediate true 在命令按钮中 文档说 布尔值 确定操作事件的phaseId 当在 应用请求值 阶段处理 true 操作时 当在 调用应用程序 阶段处理 false 时 但是 我不明白 有人可以解释一下吗
  • 如何防止滚动条与内容重叠?

    我有一个预格式化代码块 它水平溢出 因此有一个水平滚动条允许用户查看内容 overflow auto 然而 在 IE7 也许其他 IE 版本 中 滚动条与我的内容的最后一行重叠 当只有一行内容时 这尤其令人恼火 我已经尝试过列出的解决方案h
  • 沿路径长度线性填充 SVG 动画

    我有一个 SVG 文件 它代表薄形 我想制作一个动画 以便整个形状似乎正在被拉出来 我所说的三星 Galaxy S 品牌的 S 标志示例 https codepen io anon pen MGawzy https codepen io a
  • 命名空间“System.Web”中不存在类型或命名空间名称“Optimization”

    我正在部署一个新网站作为我的主网 站 它运行得很好 我的根 url 下的所有应用程序都可以正常工作 除了一个 它是一个被大量使用的遗留系统 c net 不幸的是 我无法访问源代码 当我运行旧应用程序时www mysite com crm h
  • 现在的 Unix 时间戳输出为 1970 [重复]

    这个问题在这里已经有答案了 我想在将来生成一些 unix 时间戳 因此我使用像这样的生成器unixtimestamp com http www unixtimestamp com 但是 当我在 chrome 或 Firefox 的 cons
  • Xlwings 从定义的名称中获取值

    我有一个具有定义名称的 Excel 单元格 A1 已指定名称 myName xlwings 有没有办法从其名称而不是其坐标中获取其内容 它应该是相同的 title coord next wb defined names myName des
  • 第三方代码正在修改 FPU 控制字

    简介 又长又无聊的部分 问题在最后 我对不断更改 FPU 控制字的第三方 COM 组件感到非常头疼 我的开发环境是Windows和Visual C 2008 正常的FPU控制字指定在各种情况下不应抛出异常 我已经通过查看验证了这一点 CW
  • 如何在Redis中使用java对象作为值

    我对 Redis 还很陌生 我下载了 Jedis 并将其添加到我的类路径中 但是 它没有提供将 java 对象存储为 值 的方法 我是否遗漏了一些东西 或者 Jedis 没有提供将 java 对象存储为值的方法 谢谢 文卡特 您可以使用基于
  • Jenkins - 动态扩展选择参数来填充多级多选列表

    有没有办法使用动态 模式 扩展选择参数 https wiki jenkins ci org display JENKINS Dynamic Extended Choice Parameter plugin与一个绑定扩展选择参数 https
  • 未找到类型类 User 的属性 findOne()

    我搜索了很多页面 但没有找到答案 所以我粘贴了整个代码 我正在测试测试类并收到类似 Caused by org springframework beans factory BeanCreationException Error create
  • 在 SQL Server 中创建一个函数,以电话号码作为参数并返回随机数

    我希望有人可以在这里帮助我 因为谷歌并没有像我希望的那样及时 我对 SQL Server 比较陌生 所以这是我为自己设定的第一个功能 该函数的概要是 它有一个电话号码 varchar 15 作为参数 它检查这个号码是否是一个正确的号码 即它
  • 如何在c++中确定win32线程处于Wait或Join或Sleep状态

    我实际搜索的是 net 的 c win32 等效项线程状态枚举 http msdn microsoft com en us library system threading threadstate aspx 有什么建议么 这些之间的区别很小
  • 您可以将 Tee-Object 重定向到标准输出吗?

    我正在编写一个脚本 我想传递这些值 但也想看到它们显示 Get Content data txt Tee Object data processor exe But Tee Object https learn microsoft com
  • 无法将主机名“postgres”转换为地址:未知主机

    设置 Django 项目 但我收到有关设置的警告postgres如标题所示 但我不确定这是什么意思 完整警告消息 RuntimeWarning Got an error checking a consistent migration his
  • 如何使用纯 HTTP 身份验证和 PHP 在 Apache 下获取经过身份验证的用户名?

    首先 让我们先考虑安全因素 我在 Apache 下使用简单身份验证来实现一次性 仅供内部使用 非互联网连接的 LAN PHP Web 应用程序 如何在 PHP 中获取经过 HTTP 身份验证的用户名 我认为你在追求这个 username S
  • 在 TeamCity 8 构建步骤中,PowerShell 退出代码始终为 0

    我们使用的是 TeamCity Enterprise 8 0 5 我有一个运行 PowerShell ps1 脚本的 TeamCity 构建步骤 如下所示 try Break something a 1 0 catch Exit 1 尽管如
  • 如何使用 Google Apps 脚本登录外部网站?

    我正在尝试登录网站 以便将数据拉回 Google 文档电子表格 我在这里阅读了各种帖子 但我不知道如何识别我需要传递的数据 该网站的登录页面有一个包含以下字段的表单