Advertisement
Guest User

Untitled

a guest
Apr 14th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 1.60 KB | None | 0 0
  1. require 'rubygems'
  2. require 'mechanize'
  3. require 'open-uri'
  4. class Kwejk
  5.  
  6.     def initialize
  7.         @agent = Mechanize.new
  8.         @page = @agent.get('http://kwejk.pl')
  9.     end
  10.  
  11.     def perform
  12.         start_worker
  13.     end
  14.  
  15.     def get_next_page
  16.         @page = @agent.get(next_page)
  17.     end
  18.  
  19.     def get_current_page_links
  20.         Dir.mkdir("./#{current_page_number}") unless Dir.exist?("./#{current_page_number}")
  21.          @page.search('figure.figure').each do |x|
  22.             link_to_kwejk = x.search('a').first&.values
  23.             img_of_kwejk = x.search('img').first&.attributes&.fetch('src')&.value
  24.             if img_of_kwejk != nil
  25.                 download = open(img_of_kwejk)
  26.                 IO.copy_stream(download, "./#{current_page_number}/#{download.base_uri.to_s.split('/')[-1]}")
  27.                 sleep(1)
  28.             end
  29.          end
  30.     end
  31.  
  32.     def start_worker
  33.         while(current_page_number > 1)
  34.             get_current_page_links
  35.             get_next_page
  36.         end
  37.     end
  38.  
  39.     def is_a_last_page?
  40.         current_page_number == 1
  41.     end
  42.  
  43.     def current_page
  44.         @current_page = @page.search('li.current > a').first.attributes&.fetch('href')&.value
  45.     end
  46.  
  47.     def next_page
  48.         @next_page = @page.search('li.current + li > a').first.attributes&.fetch('href')&.value
  49.     end
  50.  
  51.     def current_page_number
  52.         @current_page_number = @page.search('li.current > a').first.text.to_i
  53.     end
  54.  
  55.     def next_page_number
  56.         @next_page_number = @page.search('li.current + li > a').first.text.to_i
  57.     end
  58.  
  59. end
  60.  
  61. kwejk = Kwejk.new
  62. kwejk.perform
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement