كيف يمكنني التقاط لقطات من صفحات الويب باستخدام Ruby وخادم UNIX؟ [مغلق
-
05-09-2019 - |
سؤال
أحاول إنشاء صور مصغرة برمجية لعدد كبير من صفحات الويب التي يتم استضافتها على موقع الويب الخاص ب Ruby / Rails.
أريد أن أكون قادرا على كود جزء مستقل من الروبي الذي يبدو مثل هذا:
require 'awesome-screenshot-maker'
items.each do |id|
url = "http://foo.com/bar/#{id}"
shooter = AwesomeScreenshotMaker.new(0.2) # thumbnails are 20% of original
shooter.capture(url, "/images/thumbnail-#{id}.png")
end
أحتاج إلى مكتبة صانع الشاشة الرائعة (وتمعياتها) سهلة إلى حد ما في بناء على Linux و Solaris و Mac OS X. من الناحية المثالية سيتم تثبيتها باستخدام أمر واحد من "تثبيت GEM".
لقد قضيت بعد الظهر لاستكشاف الخيارات المختلفة، بما في ذلك موز المفاجئة مطلق النار, Webkit2png. و rbwebkitgtk.. وبعد إنهم جميعا في المنطقة الصحيحة، ولكن يبدو أن لا شيء يعمل على جميع المنصات الثلاثة.
يشبه RMAGICK كخيار ممكن إذا كنت على استعداد لإخراج ملفات PDF من تطبيق القضبان الخاص بي (بدلا من صفحات الويب)، لكن هذا يضربني كآلة. انها أيضا شاقة جدا للحصول على rmagic و imagemagick وتشغيلها على نظام التشغيل Mac OS X.
هل هذه المكتبة موجودة يمكن إعدادها بسهولة على ثلاثة منصات؟
المحلول
السيلينيوم rc. لديه واجهة Ruby ويمكن الاستيلاء على لقطة شاشة باستخدام capture_screenshot (اسم الملف، Kwargs).
يجب عليك بعد ذلك تقليصه إلى صورة مصغرة.
نصائح أخرى
ربما تود تجربة هذا:
هنالك https://github.com/maxwell/screencap. الذي يستخدم phantom.js.
يوجد مجمع Ruby for PageGlimpse متاح:
http://code.squidchunks.com/pageGlimpse/
لسوء الحظ، فإن شروط الاستخدام الحالة التي "يجب ألا تستخدم أو تشغيل أي نظام آلي، بما في ذلك دون قيود،" القراء حاليا "،" العناكب "، وما إلى ذلك لالتقاط البيانات المقدمة من الخدمة".
يمكنك استخدام جوهرة باهظة.
Gastly.capture('http://google.com', 'output.png')