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