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

Tyl*_*ock 5 c libcurl http-authentication html-parsing

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

具体例子:

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

可以这样做吗?

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

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

Kaz*_*zar 7

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

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

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

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

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