url_scraper.rb 622 B

1234567891011121314151617181920212223242526272829303132
  1. module Docs
  2. class UrlScraper < Scraper
  3. class << self
  4. attr_accessor :params
  5. def inherited(subclass)
  6. super
  7. subclass.params = params.deep_dup
  8. end
  9. end
  10. self.params = {}
  11. private
  12. def request_one(url)
  13. Request.run url, request_options
  14. end
  15. def request_all(urls, &block)
  16. Requester.run urls, request_options: request_options, &block
  17. end
  18. def request_options
  19. { params: self.class.params }
  20. end
  21. def process_response?(response)
  22. response.success? && response.html? && base_url.contains?(response.effective_url)
  23. end
  24. end
  25. end