如何刮取延迟加载的页面

这是我用于解析网页的代码。我在rails console中做了。但是我没有在我的rails控制台中获得任何输出。我想要抓取的网站是延迟加载 require ‘nokogiri’ require ‘open-uri’ page = 1 while true url = “http://www.justdial.com/functions”+”/ajxsearch.php?national_search=0&act=pagination&city=Delhi+%2F+NCR&search=Pandits”+”&where=Delhi+Cantt&catid=1195&psearch=&prid=&page=#{page}” doc = Nokogiri::HTML(open(url)) doc = Nokogiri::HTML(doc.at_css(‘#ajax’).text) d = doc.css(“.rslwrp”) d.each do |t| puts t.css(“.jrcw”).text puts t.css(“span.jcn”).text puts t.css(“.jaid”).text puts t.css(“.estd”).text page+=1 end end

Ruby的方法解绑机制有什么意义?

Method#unbind UnboundMethod返回对该方法的UnboundMethod引用,该引用稍后可以使用UnboundMethod#bind绑定到另一个对象。 class Foo attr_reader :baz def initialize(baz) @baz = baz end end class Bar def initialize(baz) @baz = baz end end f = Foo.new(:test1) g = Foo.new(:test2) h = Bar.new(:test3) f.method(:baz).unbind.bind(g).call # => :test2 f.method(:baz).unbind.bind(h).call # => TypeError: bind argument must be an instance of Foo 最初,我认为这非常棒,因为我预计它的工作方式与JavaScript的Function.prototype.call() / Function.prototype.apply()类似。 但是,要将方法绑定到的对象必须属于同一个类 。 我能想到的唯一应用是,如果解除绑定方法,丢失原始实现(重新定义原始或单例类中的方法),然后重新绑定并调用它。

将each_with_index与地图一起使用

我想取一个数组并将其作为一个订单列表。 目前我正在尝试这样做: r = [“a”, “b”,”c”] r.each_with_index { |w, index| puts “#{index+1}. #{w}” }.map.to_a # 1. a # 2. b # 3. c #=> [“a”, “b”, “c”] 输出应该是[“1. a”, “2. b”, “3. c”] 。 如何将正确的输出作为r数组的新值?

面向对象数据库理论

请推荐一些关于为动态语言实现面向对象数据库的材料(对Ruby感兴趣)。 我意识到OODB没有很好的数学基础,但我能找到的信息仍然不足以让我开始研究新的OODB。 谢谢。

如何使用Ruby或Python创建一系列高音和低音哔声?

我想在固定时间创建一系列低音和高音哔声。 例如: 150毫秒的高音嘟嘟声 低音提示音在151毫秒 低音提示音为200 ms 250毫秒时发出高音提示音 有没有办法在Ruby或Python中执行此操作? 我真的不关心输出编码是什么(.wav,.mp3,.ogg,等等),但我确实想创建一个输出文件。

如何使用has_many:through保存数据

我在游戏和帐户模型之间有多对多的关系,如下所示: class Account :destroy has_many :games, :through => :account_games end class Game :destroy has_many :accounts, :through => :account_games end class AccountGame < ActiveRecord::Base belongs_to :account belongs_to :game end 现在我知道让我们说我要创建一个类似的记录: @account = Account.new(params[:user]) @account.games << Game.first @account.save 但是,当我这样做时,我应该如何更新AccountGame中的一些属性? 可以说AccountGame有一些名为score字段,我该如何更新这个属性? 你能告诉我最好的方法吗? 在我保存对象时,在直通表中添加任何字段。

Ruby的Enumerator对象如何在内部迭代器上进行外部迭代?

根据Ruby的文档,如果没有为to_enum或enum_for方法提供目标方法,则Enumerator对象使用each方法(枚举)。 现在,我们以下面的猴子补丁及其枚举器为例 o = Object.new def o.each yield 1 yield 2 yield 3 end e = o.to_enum loop do puts e.next end 鉴于Enumerator对象在调用next时使用each方法来回答,每次调用next时,如何调用each方法? Enumeartor类是否预先加载o.each的所有内容并为枚举创建本地副本? 或者是否有某种Ruby魔术在每个yield语句中挂起操作,直到在enumeartor上调用next? 如果制作了内部副本,它是否是深层副本? 那些可以用于外部枚举的I / O对象呢? 我正在使用Ruby 1.9.2。

Ruby:将美元(String)转换为美分(整数)

如何将美元金额(如”5.32″或”100″的字符串转换为美分(如532或10000的整数金额? 我有一个解决方案如下: dollar_amount_string = “5.32” dollar_amount_bigdecimal = BigDecimal.new(dollar_amount_string) cents_amount_bigdecimal = dollar_amount_bigdecimal * BigDecimal.new(100) cents_amount_int = cents_amount_bigdecimal.to_i 但它似乎很不稳定。 我想确定,因为这将是PayPal API的输入。 我也尝试了金钱gem,但它不能把字符串作为输入。

将图像保存在watir-webdriver中

我需要将图像从recaptcha保存到localhost磁盘,我使用watir-webdriver获取图像dom元素,但它不支持save方法,就像watir一样。 那么如何将图像保存到我的磁盘? HTML: 和ruby代码: cap = @browsers[i].div(:id => ‘recaptcha_image’).image 如何将图像文件保存到磁盘?

我如何使用Ruby来解析时间,就好像它在我指定的时区中一样,区域的格式为America / Los_Angeles?

我希望能够从Ruby(1.8.7)中的字符串解析Time,其中字符串不包含任何时区信息。 我想把字符串看作是在这种格式中指定的任何时区中的任何一个:’America / New_York’。 时间字符串示例: ‘2010-02-05 01:00:01’ 我花了很长时间试图弄清楚这个。 我确实找到了类似的问题,但它的答案并不适用于我的情况: 我如何让Ruby解析时间,好像它处于不同的时区? 上述解决方案的问题在于我的时区不能全部用Time.parse支持的3字母格式表示( http://www.ruby-doc.org/stdlib-1.8.7/libdoc/time/rdoc /classes/Time.html#M004931 )。 有没有一个好方法来完成我在这里要做的事情? 编辑:我的回答实际上是一个答案。