They could use a program to capture the website. WinHTTrack comes to mind, but I don't know if it's still around. They wouldn't need FTP access, at all.
Another option would be to drop in a PHP script and get it to spider the site to create a site map.
Or you could create a Google site map, then port it over to an XSLT style sheet to render the links.
Code:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp "*">
<!ENTITY copy "©">
<!ENTITY reg "®">
<!ENTITY trade "™">
<!ENTITY mdash "—">
<!ENTITY ldquo "“">
<!ENTITY rdquo "”">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
<xsl:variable name="header">
<tr bgcolor="#cccccc">
<th align="left">Location</th>
<th align="left">Priority</th>
<th align="left">last Modified</th>
</tr>
</xsl:variable>
<xsl:template match="/">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>XML Site Map Template</title>
</head>
<body style="text-align:center">
<h2>Site Map Mirror</h2>
<table id="urls" style="border-collapse:collapse;border:double;width:80%;margin:0 auto;text-align:left">
<xsl:copy-of select="$header" />
<xsl:for-each select="urlset/url">
<tr style="line-height:150%">
<td><a style="margin-left:1em"><xsl:attribute name="href" ><xsl:value-of select="loc"/></xsl:attribute>
<xsl:value-of select="loc"/></a></td>
<td><xsl:value-of select="priority"/></td>
<td><xsl:value-of select="lastmod"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Create a duplicate of the Google site map and convert from this,
Code:
<urlset
xmlns="http://www.google.com/schemas/sitemap/0.84"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84
http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">
to this,
Code:
<?xml-stylesheet type="text/xsl" href="site_map.xsl" ?>
<urlset>
To keep it tucked nicely away, create a folder called 'sitemap' and add an index page (html, php, etc.) with a link to the XML document:
PHP Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Site Map</title>
</head>
<body>
<?php
$str = "<p><a href=\"index.xml\">Open XML Site Map</a></p>\n";
echo $str;
?>
<p><a href="/">Home</a></p>
</body>
</html>
Mine is called index.php. The php in the code is really just there 'to be php' in the document. No special reason, otherwise.
Place the three files (index, xml, xsl) in the new directory and access it via http:
www.yoursite.tld/sitemap
This will only give you the document structure, and not the path to all the images, but that shouldn't matter. It's the document structure you're concerned with, right?