ruby - 使用 ruby​​ mechanize 从 foursquare 获取数据

标签 ruby mechanize foursquare

我正在尝试使用 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/

相关文章:

ruby-on-rails - 为什么使用 cattr_accessor(JRuby、Rails)重新初始化我的类变量

ruby-on-rails - 嵌套路由的 url 中的用户名

找不到 Ruby Mechanize 代码转换器

超出 API 配额

android - 新的 Foursquare 更改(拆分 Foursquare/Swarm)会影响 API 吗?

ruby - 使用 rvm 在没有 pthread 的情况下安装 ruby

ruby - 在 Windows 7 上的 Ruby 1.9.2 中播放声音?

ruby - 有 2 次提交的 Mechanize 帖子

ruby-on-rails - 将 Activiti Explorer 与 Ruby on Rails 项目集成

iphone - 在IOS sdk中通过FourSquare搜索签到地点