public Collection<CollectionAndArtist> extractNames(PageInfo info) {
        String pageHTML = info.getContent();
        if (pageHTML == null) {
            System.out.println("## ERROR could not download '" + info.getURL() + "'");
            return new LinkedList<CollectionAndArtist>();
        }

        // Nur bei Zieldokument anwenden, ansonsten hier aussteigen
        if (!pageHTML.contains("STAATLICHE GRAPHISCHE SAMMLUNG")) {
            return new LinkedList<CollectionAndArtist>();
        }

        // Reguläre Ausdrücke zum Finden der Namen
        Pattern[] patterns = new Pattern[]{

                /*
                // Monogramm A
                Pattern.compile("<SPAN[^>]+?>([^,]+?)-[^<>]*?</SPAN",
                        Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL),

                // Monogramm B
                Pattern.compile("<SPAN[^>]+?>([^,]+?)siehe[^<>]*?</SPAN",
                        Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL),
                */

                // Normaler Name
                Pattern.compile("<SPAN[^>]+?>([^,<>]+),([^<>,]+?)-[^<>]*?</SPAN",
                        Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.DOTALL)
        };

        List<CollectionAndArtist> names = new ArrayList<CollectionAndArtist>();

        // Fügt jeden Treffer als Name zur aktuellen Seite hinzu
        for (Pattern p : patterns) {
            Matcher m = p.matcher(pageHTML);

            while (m.find()) {

                String name = null;

                if (m.groupCount() == 1) {
                    name = m.group(1).trim();
                } else if (m.groupCount() == 2) {
                    name = m.group(2).trim() + " " + m.group(1).trim();
                }

                CollectionAndArtist item = new CollectionAndArtist(info.getCollection(), name);
                item.crawler = CRAWLER_TAG;
                item.url = info.getURL().toString();
                item.collection = "STAATLICHE GRAPHISCHE SAMMLUNG";

                if (m.groupCount() == 2) {
                    item.fname = m.group(2);
                    item.lname = m.group(1);
                }

                names.add(item);
            }
        }

        return names;
    }