如何使用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。