Hi Domingo,

> I used this two lua scripts to get/generate then:
> 
> ====
> 
> --local html = io.open("roseta-code.html"):read("*a")
> local base_url = "http://rosettacode.org";
> local html = io.popen("curl " .. base_url ..
> "/wiki/Category:PicoLisp"):read("*a")
> 
> html = html:gsub("<h2>Pages in category
> \"PicoLisp\"</h2>.-</div></div></div><div
> class=\"printfooter\">",
>     function(m)
>         return m:gsub("(/wiki[^\"]+)(\" title=)" ,
>             function(link, title)
>                 return base_url .. link .. "#PicoLisp" .. title
>             end)
>     end)
> 
> print(html)
> 
> ====
> 
> ====
> 
> local html = io.open("roseta-code.html"):read("*a")
> --local base_url = "http://rosettacode.org";
> --local html = io.popen("curl " .. base_url ..
> "/wiki/Category:PicoLisp"):read("*a")
> 
> local code_links = html:match("<h2>Pages in
> category
> \"PicoLisp\"</h2>.-</div></div></div><div
> class=\"printfooter\">")
> 
> for link, title in code_links:gmatch("href=\"([^\"]+).->([^<]+)") do
>     print( string.format("-{^{%s %s}}", link, title))
> end
> 
> ====


Thanks a lot!

For completeness, here is the same (if I understand your scripts correctly - I
have no idea of lua) in PicoLisp:


   (in '(curl "-s" "http://rosettacode.org/wiki/Category:PicoLisp";)
      (from "Pages in category \"PicoLisp\"")
      (while (== "<a href=\"" (from "<a href=\"" "printfooter"))
         (prin "-{\^{http://rosettacode.org"; (till "\"") "#PicoLisp ")
         (from "title=\"")
         (prinl (till "\"") "}}") ) )



As you see, no need for regexps, and no need for the overhead slurping the whole
stuff into memory. Just simple stream processing.

☺/ A!ex

-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe

Reply via email to