我正在尝试使用 ruby 和 Mechanize 来解析 foursquare 网站上的数据。这是我的代码:
require 'rubygems'
require 'mechanize'
agent = Mechanize.new
page = agent.get('https://foursquare.com')
page = agent.click page.link_with(:text => /Log In/)
form = page.forms[1]
form.F12778070592981DXGWJ = ARGV[0]
form.F1277807059296KSFTWQ = ARGV[1]
page = form.submit form.buttons.first
puts page.body
但是,当我运行这段代码时,出现了以下错误:
C:/Ruby192/lib/ruby/gems/1.9.1/gems/mechanize-2.0.1/lib/mechanize/form.rb:162:in
`method_missing': undefined method `F12778070592981DXGWJ='
for #<Mechanize::Form:0x2b31f70> (NoMethodError)
from four.rb:10:in `<main>'
我检查发现,每次我尝试打开foursquare的网页时,表单对象“F12778070592981DXGWJ”和“F1277807059296KSFTWQ”的这两个变量都会发生变化。
有人遇到过同样的问题吗?每次尝试打开网页时,变量都会发生变化吗?我该如何解决这个问题?
我们的项目是关于解析 foursquare 上的数据。所以我需要先能够登录。
最佳答案
Mechanize 对于不公开 API 的网站非常有用,但 Foursquare 已经建立了 REST API已经。我建议使用 Ruby libraries 之一,也许foursquare2 。这些库抽象了诸如身份验证之类的东西,因此您只需 register your app并使用提供的 key 。
关于ruby - 使用 ruby mechanize 从 foursquare 获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7408528/