HER-1010 crawl favicon.ico

* ExtractorHTTP.java
    consider /favicon.ico 'discovered' from every other HTTP fetch
* Extractor.java
    utility method addOutlink()
This commit is contained in:
gojomo
2010-06-01 23:36:16 +00:00
parent d1f27aaecd
commit f81a941d97
2 changed files with 22 additions and 0 deletions
@@ -125,6 +125,24 @@ public abstract class Extractor extends Processor {
*/
protected abstract void extract(CrawlURI uri);
/**
* Create and add a 'Link' to the CrawlURI with given URI/context/hop-type
* @param curi
* @param uri
* @param context
* @param hop
*/
protected void addOutlink(CrawlURI curi, String uri, LinkContext context,
Hop hop) {
try {
UURI dest = UURIFactory.getInstance(curi.getUURI(), uri);
Link link = new Link(curi.getUURI(), dest, context, hop);
curi.getOutLinks().add(link);
} catch (URIException e) {
logUriError(e, curi.getUURI(), uri);
}
}
public void logUriError(URIException e, UURI uuri,
CharSequence l) {
@@ -52,8 +52,12 @@ public class ExtractorHTTP extends Extractor {
@Override
protected void extract(CrawlURI curi) {
HttpMethod method = curi.getHttpMethod();
// discover headers if present
addHeaderLink(curi, method.getResponseHeader("Location"));
addHeaderLink(curi, method.getResponseHeader("Content-Location"));
// try /favicon.ico for every HTTP(S) URI
addOutlink(curi, "/favicon.ico", LinkContext.EMBED_MISC, Hop.EMBED);
}
protected void addHeaderLink(CrawlURI curi, Header loc) {