repo  <- contrib.url(getOption("repos"))
index <- sub( "src/contrib", "web/packages/index.html", repo )
html  <- readLines( index )
html  <- grep( "./../web/packages/", html, value = TRUE )
data  <- sub( '^.*index.html">(.*?)(.*?)$',
        "\\1 @@ \\2", html, perl = TRUE )
data  <- sub( '<.*?>', '', data )
packages <- do.call( rbind, strsplit( data, " @@ " ) )
head( packages, 20 )