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
2323puts "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