[Haskell-cafe] [GSoC] WWW::Mechanize-like package for Haskell
Thomas Schilling
nominolo at googlemail.com
Mon Apr 7 09:11:52 EDT 2008
On 7 apr 2008, at 14.46, Max Desyatov wrote:
> Hi,
>
> I'm interested in working on a library for a stateful web browsing in
> Haskell during Google Summer of Code. The basic idea is described at
> http://hackage.haskell.org/trac/summer-of-code/ticket/1107.
> WWW::Mechanize is a ready to use library written in Perl, though I
> used python's mechanize when I wrote some simple scripts
> (http://wwwsearch.sourceforge.net/mechanize/), which provides much
> cleaner interface. Anyway, it gives simple and convenient way to
> retreive web-sites, to handle cookies, history and to process
> retrieved content and forms. There are basics of it Network.Browser
> module from Haskell's HTTP library
> (http://hackage.haskell.org/packages/archive/HTTP/3001.0.4/doc/
> html/Network-Browser.html),
> but it's ugly (uses unsafePerformIO for error reporting) and lacks a
> greater part of needed functionality.
>
> My aim is to greatly improve Network.Browser module and to make coding
> small scripts with it in more functional way possible. At this moment
> it uses BrowserAction state monad. Though, the deadline is
> approaching, I still seek some ways to improve my proposal. So here
> are the questions: are there any other data structures that will make
> programming with this library more convenient, besides simple state
> monad? Should we contrive more sophisticated system with other other
> separate data structures? What other improvements you'd like to see?
>
It doesn't have to be perfect. Make sure you know how to use monad
transformers. Also take a look at tag soup and the various HTML/XML
parsers. I'm sure there's plenty to work on.
My guess would be, that you try to write non-trivial example
applications and see what is needed. For example, you could write a
script to download/upload a Haskell wiki page logging in if
necessary. Take a look of what other WWW::Mechanize packages are
used. That kind of stuff.
Also, for a GSoC proposal you should try to convince the mentors, why
your project is useful for Haskell in general. So maybe you have
some more arguments there, too.
/ Thomas
More information about the Haskell-Cafe
mailing list