كيف يمكنني التقاط لقطات من صفحات الويب باستخدام Ruby وخادم UNIX؟ [مغلق

StackOverflow https://stackoverflow.com/questions/726660

سؤال

أحاول إنشاء صور مصغرة برمجية لعدد كبير من صفحات الويب التي يتم استضافتها على موقع الويب الخاص ب 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).

يجب عليك بعد ذلك تقليصه إلى صورة مصغرة.

نصائح أخرى

ربما تود تجربة هذا:

http://www.pageGlimpse.com/

هنالك https://github.com/maxwell/screencap. الذي يستخدم phantom.js.

يوجد مجمع Ruby for PageGlimpse متاح:

http://code.squidchunks.com/pageGlimpse/

لسوء الحظ، فإن شروط الاستخدام الحالة التي "يجب ألا تستخدم أو تشغيل أي نظام آلي، بما في ذلك دون قيود،" القراء حاليا "،" العناكب "، وما إلى ذلك لالتقاط البيانات المقدمة من الخدمة".

يمكنك استخدام جوهرة باهظة.

Gastly.capture('http://google.com', 'output.png')

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top