diff --git a/modules/src/main/java/org/archive/modules/extractor/ExtractorHTML.java b/modules/src/main/java/org/archive/modules/extractor/ExtractorHTML.java index 9122cf18..d0b339c4 100644 --- a/modules/src/main/java/org/archive/modules/extractor/ExtractorHTML.java +++ b/modules/src/main/java/org/archive/modules/extractor/ExtractorHTML.java @@ -114,7 +114,7 @@ public class ExtractorHTML extends ContentExtractor implements InitializingBean "(?is)<(?:((script[^>]*+)>.*?]*+)>.*?]*+)" + // 5, 6, 7 - "|(!--.*?--))>"; // 8 + "|(!--(?!\\[if).*?--))>"; // 8 // version w/ problems with unclosed script tags // static final String RELEVANT_TAG_EXTRACTOR = diff --git a/modules/src/test/java/org/archive/modules/extractor/ExtractorHTMLTest.java b/modules/src/test/java/org/archive/modules/extractor/ExtractorHTMLTest.java index fae65d52..5fc684e8 100644 --- a/modules/src/test/java/org/archive/modules/extractor/ExtractorHTMLTest.java +++ b/modules/src/test/java/org/archive/modules/extractor/ExtractorHTMLTest.java @@ -66,6 +66,7 @@ public class ExtractorHTMLTest extends StringExtractorTestBase { " IMG", "http://www.archive.org/start/foo.gif", + }; @@ -379,5 +380,32 @@ public class ExtractorHTMLTest extends StringExtractorTestBase { assertTrue("outlinks should contain: "+expected, CollectionUtils.exists(curi.getOutLinks(),destinationsIsPredicate(expected))); } + + /** + * HER-1998 + * @throws URIException + */ + public void testConditionalComment1() throws URIException { + CrawlURI curi = new CrawlURI(UURIFactory.getInstance("http://www.example.com/")); + + CharSequence cs = + "" + + ""; + + ExtractorHTML extractor = (ExtractorHTML)makeExtractor(); + extractor.extract(curi, cs); + + Link[] links = curi.getOutLinks().toArray(new Link[0]); + Arrays.sort(links); + + String dest1 = "http://www.example.com/foo.gif"; + String dest2 = "http://www.example.com/foo.js"; + + assertEquals("outlink1 from conditional comment img src",dest1, + links[0].getDestination().toString()); + assertEquals("outlink2 from conditional comment script src",dest2, + links[1].getDestination().toString()); + + } }