Skip to content

Commit d1ec9bb

Browse files
committed
handle protocol relative urls
1 parent e93c3bc commit d1ec9bb

1 file changed

Lines changed: 8 additions & 19 deletions

File tree

cewl.rb

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
# Licence:: CC-BY-SA 2.0 or GPL-3+
1919
#
2020

21-
VERSION = "6.2.1 (More Fixes)"
21+
VERSION = "6.3.0 (Big Fixes)"
2222

2323
puts "CeWL #{VERSION} Robin Wood (robin@digi.ninja) (https://digi.ninja/)\n"
2424

@@ -295,25 +295,14 @@ def get_page(uri, &block) #:nodoc:
295295
end
296296

297297
# Overriding so that I can get it to ignore direct names - i.e. #name
298-
def construct_complete_url(base_url, additional_url, parsed_additional_url = nil) #:nodoc:
298+
def construct_complete_url(base_url, additional_url) #:nodoc:
299299
return nil if additional_url =~ /^#/
300300

301-
parsed_additional_url ||= URI.parse(additional_url)
302-
if parsed_additional_url.scheme.nil?
303-
u = base_url.is_a?(URI) ? base_url : URI.parse(base_url)
304-
if additional_url[0].chr == '/'
305-
url = "#{u.scheme}://#{u.host}:#{u.port}#{additional_url}"
306-
elsif u.path.nil? || u.path == ''
307-
url = "#{u.scheme}://#{u.host}:#{u.port}/#{additional_url}"
308-
elsif u.path[0].chr == '/'
309-
url = "#{u.scheme}://#{u.host}:#{u.port}#{u.path}/#{additional_url}"
310-
else
311-
url = "#{u.scheme}://#{u.host}:#{u.port}/#{u.path}/#{additional_url}"
312-
end
313-
else
314-
url = additional_url
301+
begin
302+
URI.join(base_url.to_s, additional_url).to_s
303+
rescue URI::InvalidURIError
304+
nil
315305
end
316-
return url
317306
end
318307

319308
# Overriding the original spider one as it doesn't find hrefs very well
@@ -340,8 +329,8 @@ def generate_next_urls(a_url, resp) #:nodoc:
340329
nil
341330
else
342331
begin
343-
parsed_link = URI.parse(link)
344-
parsed_link.fragment == '#' ? nil : construct_complete_url(base_url, link, parsed_link)
332+
parsed_link = URI.parse(link)
333+
parsed_link.fragment == '#' ? nil : construct_complete_url(base_url, link)
345334
rescue
346335
nil
347336
end

0 commit comments

Comments
 (0)