From 2af19fa03b47d34fa08446f904eff23bbb4c7ad4 Mon Sep 17 00:00:00 2001 From: Hunter Stern Date: Mon, 8 Sep 2014 16:37:03 -0700 Subject: [PATCH] Revise regex instead of unescaping js. --- .../java/org/archive/modules/extractor/ExtractorJS.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/modules/src/main/java/org/archive/modules/extractor/ExtractorJS.java b/modules/src/main/java/org/archive/modules/extractor/ExtractorJS.java index 0757deb6..10de06cf 100644 --- a/modules/src/main/java/org/archive/modules/extractor/ExtractorJS.java +++ b/modules/src/main/java/org/archive/modules/extractor/ExtractorJS.java @@ -67,7 +67,7 @@ public class ExtractorJS extends ContentExtractor { // (areas between paired ' or " characters, possibly backslash-quoted // on the ends, but not in the middle) protected static final String JAVASCRIPT_STRING_EXTRACTOR = - "(\\\\{0,8}+['\"])([^\\s'\"]{1,"+UURI.MAX_URL_LENGTH+"})(?:\\1)"; + "(\\\\{0,8}+(?:['\"]|u002[27]))([^\\s'\"]{1,"+UURI.MAX_URL_LENGTH+"})(?:\\1)"; // GROUPS: // (G1) ' or " with optional leading backslashes @@ -143,15 +143,13 @@ public class ExtractorJS extends ContentExtractor { CrawlURI curi, CharSequence cs, boolean handlingJSFile) { long foundLinks = 0; - String unescapedJavaScript = StringEscapeUtils.unescapeJavaScript(cs.toString()); - Matcher strings = - TextUtils.getMatcher(JAVASCRIPT_STRING_EXTRACTOR, unescapedJavaScript); + TextUtils.getMatcher(JAVASCRIPT_STRING_EXTRACTOR, cs); int startIndex = 0; while (strings.find(startIndex)) { CharSequence subsequence = - unescapedJavaScript.subSequence(strings.start(2), strings.end(2)); + cs.subSequence(strings.start(2), strings.end(2)); if (UriUtils.isPossibleUri(subsequence)) { if (considerString(ext, curi, handlingJSFile, subsequence.toString())) {