<div dir="ltr"><p dir="ltr">Out of curiosity, are there any extant plans or efforts beyond Jay's work on http-client aimed at net/ related functionality?<br></p><p dir="ltr"><br></p><p>Just wondering,</p>Evan</div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Thu, Jan 9, 2014 at 5:08 PM, Roman Klochkov <span dir="ltr"><<a href="mailto:kalimehtar@mail.ru" target="_blank">kalimehtar@mail.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div>I'm making fully RFC6265 compliant cookie support for net/url and http.<br><a href="https://github.com/Kalimehtar/client-cookies" target="_blank">https://github.com/Kalimehtar/client-cookies</a><br><br>It is still pre-alpha, but, I hope, will be ready in 2-3 weeks.<br>
<br><br>óÒÅÄÁ,  8 ÑÎ×ÁÒÑ 2014, 10:33 -07:00 ÏÔ Matthew Flatt <<a href="mailto:mflatt@cs.utah.edu" target="_blank">mflatt@cs.utah.edu</a>>:<div><div class="h5"><br>
<blockquote style="border-left:1px solid #0857a6;margin:10px;padding:0 0 0 10px">
        <div>
        



    






        

        
        
        
        
        

        

        
        



<div>
        
         
        <div>
                
                
                        <div>In case no one offers a better library, enclosed is a small one that I<br>
recently created for a web-scraping task.<br>
<br>
Start a simulation of a browser with `make-connection`, use `goto!` to<br>
follow a link to a relative URL (following redirects), and use `back!`<br>
to go back. The `goto!` function returns two values: the headers as a<br>
string and the page content as bytes.<br>
<br>
Beware: My application accessed a single site, so this library doesn't<br>
attempt to do the right thing with cookies across sites.<br>
<br>
At Wed, 08 Jan 2014 03:48:44 -0800, Duncan Bayne wrote:<br>
> Hi All,<br>
> <br>
> I'm trying to re-write some Common Lisp web-scraping code in Racket.<br>
> <br>
> In Common Lisp, I'm POSTing a login request, and storing the cookie-jar<br>
> for subsequent GETs:<br>
> <br>
> (defun login (username password)<br>
>   "Logs in to <a href="http://www.example.com" target="_blank">www.example.com</a>.  Returns a cookie-jar containing<br>
>   authentication details."<br>
>   (let ((cookie-jar (make-instance 'drakma:cookie-jar)))<br>
>     (drakma:http-request "<a href="http://www.example.com/login" target="_blank">http://www.example.com/login"</a><br>
>              :method :post<br>
>              :parameters `(("username" . ,username) ("password" .<br>
>              ,password))<br>
>              :cookie-jar cookie-jar)<br>
>     cookie-jar))<br>
> <br>
> ; snip<br>
> <br>
> (defun get-page (page-num cookie-jar)<br>
>   "Downloads a potentially invalid HTML page containing data to scrape. <br>
>   Returns a string containing the HTML."<br>
>   (let ((url (concatenate 'string "<a href="http://www.example.com/data/" target="_blank">http://www.example.com/data/"</a><br>
>   (write-to-string page-num))))<br>
>     (let ((body (drakma:http-request url :cookie-jar cookie-jar)))<br>
>       (if (search "No data found." body)<br>
>     nil<br>
>   body))))<br>
> <br>
> However, I can't find an equivalent in Racket. The latest HTTP<br>
> library[1] makes no mention of cookies at all, and AFAICT the cookie<br>
> library[2] seems more about correctly serializing and deserializing<br>
> them.<br>
> <br>
> Can anyone suggest a way of re-writing the above CL in Racket without<br>
> having to implement a bunch of header-parsing stuff?<br>
> <br>
> TIA for any help ...<br>
> <br>
> [1]<br>
> <a href="https://github.com/plt/racket/blob/master/racket/collects/net/http-client.rkt" target="_blank">https://github.com/plt/racket/blob/master/racket/collects/net/http-client.rkt</a><br>
> [2] <a href="http://docs.racket-lang.org/net/cookie.html" target="_blank">http://docs.racket-lang.org/net/cookie.html</a><br>
> <br>
> -- <br>
> Duncan Bayne<br>
> ph: <a href="tel:%2B61%20420817082" value="+61420817082" target="_blank">+61 420817082</a> | web: <a href="http://duncan-bayne.github.com/" target="_blank">http://duncan-bayne.github.com/</a> | skype:<br>
> duncan_bayne<br>
> <br>
> I usually check my mail every 24 - 48 hours.  If there's something<br>
> urgent going on, please send me an SMS or call me.<br>
> ____________________<br>
>   Racket Users list:<br>
>   <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</div>
                        <div>____________________<br>
ššRacket Users list:<br>
šš<a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
<br>
</div>
                
                
        </div>

        
</div>


</div>
</blockquote>
<br>
<br></div></div><span class="HOEnZb"><font color="#888888">-- 
<br>Roman Klochkov<br></font></span></div>
<br>____________________<br>
š Racket Users list:<br>
š <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
<br></blockquote></div><br></div>