客户端cookies在Racket中
我正在尝试在Racket中重新编写一些常见的Lisp网页抓取代码 在Common Lisp中,我发布一个登录请求,并存储cookie jar以供后续获取:客户端cookies在Racket中,cookies,racket,Cookies,Racket,我正在尝试在Racket中重新编写一些常见的Lisp网页抓取代码 在Common Lisp中,我发布一个登录请求,并存储cookie jar以供后续获取: (defun login (username password) "Logs in to www.example.com. Returns a cookie-jar containing authentication details." (let ((cookie-jar (make-instance 'drakma:cookie-
(defun login (username password)
"Logs in to www.example.com. Returns a cookie-jar containing authentication details."
(let ((cookie-jar (make-instance 'drakma:cookie-jar)))
(drakma:http-request "http://www.example.com/login"
:method :post
:parameters `(("username" . ,username) ("password" . ,password))
:cookie-jar cookie-jar)
cookie-jar))
; snip
(defun get-page (page-num cookie-jar)
"Downloads a potentially invalid HTML page containing data to scrape. Returns a string containing the HTML."
(let ((url (concatenate 'string "http://www.example.com/data/" (write-to-string page-num))))
(let ((body (drakma:http-request url :cookie-jar cookie-jar)))
(if (search "No data found." body)
nil
body))))
然而,我在球拍方面找不到一个等价物。完全没有提到cookies,而AFAICT似乎更多地是关于正确地序列化和反序列化它们
有人能提出一种在Racket中重新编写上述CL的方法,而不必执行大量的头解析工作吗?Racket库中没有此类功能(在撰写本文时,2014年1月30日) 关于这一点,Racket的用户列表中已经有很多,并且有一个名为的第三方库来解决这个问题。在撰写本文时,该库尚未准备好生产,但正在积极开发中