如何使用libcurl登录安全网站并获取登录后面的html

嘿伙计们,我想知道你们是否可以通过使用C和libcurl访问登录页面后面的html来帮助我工作。

具体例子:

我想访问的网站是https://onlineservices.ubs.com/olsauth/ex/pbl/ubso/dl

有可能做这样的事吗?

问题是我们有很多客户,每个客户都有一个单独的登录。 我们需要每天从每个帐户获取数据。 如果我们可以在C中写一些东西并将所有相关数据保存到文件中,那将是非常光滑的。 (比如我可以从html解析的账户和头寸的值)

你们有什么感想? 这是可能的,你能帮助我指出正确的方向吗?等等……?

在粗略浏览一下登录页面后,可以通过libcurl执行此操作,将用户名/密码组合发布到其身份validation页面,并假设他们使用cookie来表示登录会话。 第一步是确保您已设置以下选项:

  • CURLOPT_FOLLOWLOCATION – 服务器可能在validation后重定向,这很常见。
  • CURLOPT_POST – 这告诉libcurl切换到post模式。
  • CURLOPT_POSTFIELDS – 这告诉libcurl要为post字段设置的值。 将此选项设置为“ userId=&password= ”。 该值来自该页面的源代码。
  • CURLOPT_USERAGENT – 设置一个简单的用户代理,这样Web服务器就不会抛弃它(一些严格的用户代理会这样做)。

然后,一旦post完成,libcurl实例应该包含某种授权cookie,用于识别登录用户。 Curl应该跟踪给定实例中的cookie。 如果您想调整Cookie的行为方式,Curl有很多选项。

确保一旦“登录”,该帐户下的每个请求都使用相同的libcurl实例,否则会看到您已注销。

至于解析生成的页面,有很多用于c的HTML解析器 – 只是谷歌 。 我唯一要说的是不要自己编写HTML解析器。 众所周知,这很棘手,因为很多网站都不能生成好的(甚至是工作的)HTML。