From ba5dbfd061d328a2140f0a7541ef0fdb6acf5903 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Sun, 12 May 2019 15:37:48 +0300 Subject: behavior: Ignore invalid URLs when extracting links Fixes #18. --- crocoite/behavior.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'crocoite/behavior.py') diff --git a/crocoite/behavior.py b/crocoite/behavior.py index dca9ea0..d079603 100644 --- a/crocoite/behavior.py +++ b/crocoite/behavior.py @@ -328,6 +328,13 @@ class ExtractLinksEvent: def __repr__ (self): return f'' +def mapOrIgnore (f, l): + for e in l: + try: + yield f (e) + except: + pass + class ExtractLinks (Behavior): """ Extract links from a page using JavaScript @@ -348,7 +355,7 @@ class ExtractLinks (Behavior): tab = self.loader.tab yield self.script result = await tab.Runtime.evaluate (expression=str (self.script), returnByValue=True) - yield ExtractLinksEvent (list (set (map (URL, result['result']['value'])))) + yield ExtractLinksEvent (list (set (mapOrIgnore (URL, result['result']['value'])))) class Crash (Behavior): """ Crash the browser. For testing only. Obviously. """ -- cgit v1.2.3