← Blog

Miyazaki, 16. Juni 2022

Screenshots von Websites mit Ruby erstellen

Sie haben eine Datei mit einer Liste von URLs und möchten von jeder einen Screenshot machen.



Installieren Sie geckodriver von https://github.com/mozilla/geckodriver/releases

geckodriver.exe muss im Systempfad liegen


Installieren Sie das Gem watir-screenshot-stitch


gem install watir-screenshot-stitch

Code

require 'URI'
require 'fileutils'
require 'watir-screenshot-stitch'

basepath = File.join(__dir__, 'screenshots')
FileUtils.mkdir_p basepath

content = File.read('20220610_URLS.txt')

b = Watir::Browser.new :firefox

content.lines.each do |line|
    line = line.strip
    begin
        if  line.include?("http")
            uri =  URI.parse(line).normalize.to_s
            hostname = URI.parse(line).host 
            path = File.join(basepath, hostname)
            FileUtils.mkdir_p path
            puts uri
            b.goto uri
            png = b.screenshot.base64_geckodriver
            filename = uri.gsub(/[^0-9A-Za-z.\-]/, '_')
            path = File.join(path, "#{filename}.png")
            File.open(path, 'wb') { |f| f.write(Base64.decode64(png)) }
        end
    rescue
       # puts line + " is not url"
    end
end



watir-screenshot-stitch auf GitHub

PS: Es gibt auch ein Gem, um mit Ruby Screenshots von Windows-Programmen zu erstellen:
https://rubygems.org/gems/win32screenshot



Man könnte das erweitern und die Screenshots in Word-Dokumente einfügen:
https://rubywithwatir.blogspot.com/2008/07/how-do-i-take-screenshots-and-append-to.html


Danke fürs Lesen

Wenn Ihnen dieser Artikel gefallen hat:
Senden Sie einfach diese E-Mail. Ich melde mich, wenn ich das nächste Mal etwas schreibe.

Andi