使用ruby,phantomjs - 无头机器在页面上截取特定div的屏幕截图

时间:2017-05-13 07:19:02

标签: html ruby phantomjs screenshot

我正在尝试逐个浏览本网站Link上所有子页面上所有div.auto_items的屏幕截图。

我想要实现的是将所有车辆作为图片,然后将其作为图像幻灯片显示在自助服务终端机器上。 它应该从cron运行,因为车辆不时变化(自然地)

到目前为止我所拥有的是:

#!/root/.rbenv/shims/ruby
require 'rubygems'
require 'nokogiri'
require 'open-uri'
require 'screencap'

base_url = "http://vacs.opelduna.hu.opel.carusseldwt.com/result/"
page = Nokogiri::HTML(open(base_url))
page.encoding = 'utf-8'

page.css('div#rk div.index_top div.small_search_results_pager ul li.paging_item a span').each do |el|
   #puts el.text
   count = 0
   page2_url = "http://vacs.opelduna.hu.opel.carusseldwt.com/result/" + el.text
   #page2 = Nokogiri::HTML(open(page2_url))
   f = Screencap::Fetcher.new(page2_url)
   #page2.css('div#rk div.auto_item').each do |car2pic|
        count = count+1
        #f = Screencap::Fetcher.new(car2pic)
           screenshot = f.fetch(
           :output => '~/car2pic_'+count.to_s+'.png', # don't forget the extension!
           # optional:
           :div => '.auto_content', # selector for a specific element to take screenshot of
           #:width => 1024,
           #:height => 768,
           #:top => 0, :left => 0, :width => 100, :height => 100 # dimensions for a specific area
           )
   #end

end 

但这似乎没有做任何事情。或者至少我让它“运行”10分钟,并没有保存照片:( 重要的是这台机器是无头的,所以没有台式机。

我在这里阅读 how to screenshot a div using phantomJS 一个解决方案是部分呈现页面,然后截取屏幕截图,但我认为这个: https://github.com/maxwell/screencap 照顾好。

感谢 汤姆

0 个答案:

没有答案