private Object processSingle(Page page, String html, boolean isRaw) {
        Object o = null;
        try {
            o = clazz.newInstance();
            for (FieldExtractor fieldExtractor : fieldExtractors) {
                PageField field = SourceTextExtractor.getText(page, html, isRaw, fieldExtractor);
                if (!field.operation(o, fieldExtractor, logger))
                    return null;
            }
            if (AfterExtractor.class.isAssignableFrom(clazz))
                ((AfterExtractor) o).afterProcess(page);
        } catch (Exception e) {
            logger.error("extract fail", e);
        }
        return o;
    }
The main internal logic of page model extractor.

@author code4crafter@gmail.com <br>
@since 0.2.0
webmagic-extension/src/main/java/us/codecraft/webmagic/model/PageModelExtractor.java