使用Ruby Mechanize访问网站部分的难度

时间:2013-11-12 16:29:49

标签: ruby mechanize

我正在尝试访问airbnb列表中的日历数据,但到目前为止还没有成功。我在Ruby中使用Mechanize gem,当我尝试访问链接以访问表时,我遇到以下错误:

require 'mechanize'
agent = Mechanize.new
page1=agent.get("https://www.airbnb.com/rooms/726348")
page2=agent.get("https://www.airbnb.com/rooms/calendar_tab_inner2/73944?cal_month=11&cal_year=2013&currency=USD")
Mechanize::ResponseCodeError: 400 => Net::HTTPBadRequest for https://www.airbnb.com/rooms/calendar_tab_inner2/726348?cal_month=11&cal_year=2013&currency=USD -- unhandled response

我还尝试使用以下代码单击生成表格的选项卡,但这样做只是从原始URL生成html。

agent = Mechanize.new
page1=agent.get("https://www.airbnb.com/rooms/726348")
page2=agent.click(page1.link_with(:href => '#calendar'))

任何帮助都会非常感激。谢谢!

1 个答案:

答案 0 :(得分:0)

我看到了问题,您需要检查请求标头:

page = agent.get url, nil, nil,  {'X-Requested-With' => 'XMLHttpRequest'}