2014-05-15 33 views
0

我在Rails 4應用程序中使用機械化。我創建了一個新的agent刮頁:如何使用機械化來統計特定頁面上的圖像數量?

clienturl = @bid.mozs.where(is_main: true).first.attributes['url'] 
agent = Mechanize.new 
@page = agent.get('http://' + clienturl) 
@url = @page.uri 

我可以做這樣的事情得到URI,標題和meta描述。我現在想要獲取頁面上圖片的數量以及這些圖片中有多少圖片缺少alt屬性。機械化這可能嗎?

回答

2

做這樣的事情:

require 'mechanize' 

agent = Mechanize.new 
page = agent.get('http://www.iana.org/domains/reserved') 
doc = page.parser 

img_count = doc.search('img').size # => 2 
img_w_alt_count = doc.search('img[@alt]').size # => 1 
img_count - img_w_alt_count # => 1 

Nokogiri裏面機械化解析器。 parser返回解析的DOM的一個實例。從那我們可以詢問Nokogiri search所有匹配選擇器的節點。我使用了CSS選擇器,但也可以使用XPath; CSS往往更具可讀性,而且冗長。

search返回一個NodeSet,所以size告訴我們有多少個節點匹配。

+1

或者只是'page.search('img:not([alt])')。size' – pguardiario

+0

@pguardiario哇!是!完美而簡單! – Jordan

+0

@theTinMan優秀!很好的解釋!這幫助我很多! – Jordan