Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'selenium-webdriver'
- require 'nokogiri'
- require 'pry'
- require "open-uri"
- options = Selenium::WebDriver::Chrome::Options.new(args: ['headless'])
- driver = Selenium::WebDriver.for(:chrome, options: options)
- driver.get('https://www.instagram.com/instagram/')
- sleep 5
- driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")
- sleep 1
- driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")
- sleep 1
- driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")
- sleep 2
- doc = Nokogiri::HTML(driver.page_source)
- links = doc.search('a').map(&:values)
- #cleaning
- s = []
- clean = []
- links.each do |ele|
- ele.each do |ele2|
- if ele2.include?('/p')
- s << ele2
- end
- end
- end
- s.each do |string|
- string.scan /\/p\/.+/ do |i|
- clean << i
- end
- end
- #links to each pic
- final_links = clean.map{|ele| "https://www.instagram.com#{ele}"}
- #finding direct link to each pic
- arr = doc.search('img').map(&:values)
- arr.length
- #cleaning
- images_hd = []
- arr.each do |ele|
- ele.each do |link|
- if link.include?("cover")
- images_hd << ele[-2]
- end
- end
- end
- #downloading the pics
- images_hd.each_with_index do |pic,i|
- File.open("imagen #{i}.png", 'wb') do |fo|
- fo.write open(pic).read
- end
- end
- driver.quit
Add Comment
Please, Sign In to add comment