我正在使用Rails 3抓取一个网站,并进行如下查询:
agent = Mechanize.new
doc = agent.get(url)
我正在做
doc.search("//div")
返回页面上所有div的列表。我想选择具有最大字体大小的div。无论如何使用Mechanize,Nokogiri或任何其他Rails gem来查找div的计算字体大小,并从那里选择具有最大字体大小的那个?
由于
答案 0 :(得分:1)
你不能用Mechanize或Nokogiri这样做,因为他们只是阅读静态HTML。然而,字体大小通常不再在HTML中定义;它通常在CSS中定义或使用JavaScript以编程方式添加。
唯一的解决方案是能够执行JavaScript并使用JavaScript的getComputedStyle
方法,该方法可以获得已应用于元素的字体大小(通过CSS或JS)。因此,您需要一种方法将JS注入您的页面并获得结果。这可能是使用watir-webdriver
,因为Selenium有钩子来做到这一点。有关如何注入JS并将结果返回给Selenium中的调用者的说明,请参阅this page的最后一部分。另一个选择是PhantomJS,它是一个带JS API的无头浏览器。