具有身份验证的http客户端的Kdb / q示例

时间:2015-07-27 21:46:19

标签: kdb

是否可以使用Kdb + http客户端访问受登录保护的页面?我使用https://github.com/KxSystems/cookbook/blob/master/yahoo.q作为基本GET / POST的示例。有没有人举例说明如何提取cookie并在以下请求中使用它?

2 个答案:

答案 0 :(得分:2)

它可能有点粗糙,但以下将从http中提取标题,然后是cookie,解析并返回为字典:

x:"HTTP/1.0 200 OK\r\nContent-type: text/html\r\nSet-Cookie: theme=light\r\nSet-Cookie: sessionToken=abc123; Expires=Wed, 09 Jun 2021 10:18:14 GMT\r\n\r\n";


left:{(first y ss x)#y};
vs1:{{(y#x;(count[z]+y)_x)}[y;;x](first y ss x)};
headers:{{(`$x[0];x[1])} flip vs1[": "] each 1_"\r\n" vs left["\r\n\r\n"]x};
cookies:{(!). {(`$x[0];x[1])} flip vs1["="] each {x[1]@where x[0]=`$"Set-Cookie"} x};

cookies headers[x]

答案 1 :(得分:2)

虽然你可以从http响应中获得各种各样的位和bob,但是你无法操纵http方法的事实意味着q不能成为你的工具 - 好吧,不是没有一些活力努力。

我会将Beautiful Soup与q结合使用。汤有一些很好的工具来处理这种事情(例如饼干等)。还有其他类似的项目。

系统调用Beautiful Soup,进行相关的get / post / put调用并下载所需的数据

system"/path/to/code.py"

代码将结果转储到某处或直接将其放入kdb。然后用它做任何你喜欢的事。