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

Kdb/q example of http client with authentication

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

可能有点粗糙,但是下面将从http中提取headers,然后cookies,解析和return作为字典:

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]

虽然您可能能够从 http 响应中获取各种细节,但您无法操作 http 方法这一事实意味着 q 不能成为您执行此操作的工具 - 好吧,不是没有一些积极的努力。

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

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

system"/path/to/code.py"

代码将结果转储到某处或直接将其放入 kdb 的位置。然后随心所欲。