我在Rails 4应用程序中使用Mechanize。我创建了一个新的agent
来抓取页面:
clienturl = @bid.mozs.where(is_main: true).first.attributes['url']
agent = Mechanize.new
@page = agent.get('http://' + clienturl)
@url = @page.uri
我可以做一些事情,比如获取uri,title和meta描述。我现在想要获取页面上的图像数量,以及有多少图像缺少alt属性。这可能与Mechanize有关吗?
答案 0 :(得分: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是Mechanize中的解析器。 parser
返回已解析DOM的实例。从那里我们可以向Nokogiri询问search
与选择器匹配的所有节点。我使用了CSS选择器,但你也可以使用XPath; CSS往往更具可读性和更简洁。
search
返回一个NodeSet,因此size
告诉我们匹配了多少个节点。