class Scraper
def initialize(options = {}) do
@options = options
end
def scrape
Wombat.crawl do
base_url @options[:base_url]
path @options[:path]
some_data css: @options[:css]
end
end
end
样本用法:
sample = Scraper.new({base_url: "someurl.com", path:"/random", css: ".regular"})
sample.scrape
我似乎无法在scrape方法中访问@options。这是一个范围问题,可能通过平面范围解决,但我似乎无法解决它。任何帮助,将不胜感激。
答案 0 :(得分:3)
正如Marek Lipka所说,上下文可能会被instance_eval
修改。如果是这种情况,则无法访问Scraper
实例的实例变量,但可以访问局部变量。这样做:
def scrape
options = @options
Wombat.crawl do
base_url options[:base_url]
path options[:path]
some_data css: options[:css]
end
end