【问题标题】:Mechanize and invisible search form机械化和隐形搜索表单
【发布时间】:2012-12-17 21:57:05
【问题描述】:

我正在尝试使用 Mechanize 在某个网站上执行搜索,但我无法提交搜索表单,因为 mechanize 看不到任何表单。 page.form 返回 nil 和 page = agent.get 仅返回 {forms}> 而我期望类似

<Mechanize::Form
 {name "somename"}
 {method "GET"}
 {action "/search"} 

是因为搜索表单使用了javascript吗?有没有办法解决这个问题?还是唯一的办法就是放弃机械化并使用其他东西?

【问题讨论】:

  • Mechanize 不能做 javascript。 stackoverflow.com/questions/802225/…
  • 能否将 URL 发布到您尝试抓取的页面? Unixmonkey 是绝对正确的。您也可以使用 webdriver(如 waitir)先加载页面。
  • 这是页面s.weibo.com我知道mechanize有js的问题,但我不确定这个具体问题是否是因为js。我希望有一些解决方法......因为机械化似乎非常适合我的需求,而使用其他东西的想法让我感到难过)

标签: ruby mechanize


【解决方案1】:

这意味着该页面上没有表单。解决方法是 get 下一页,即伪装成表单提交的页面。

换句话说,当我在搜索框中输入“foo”并单击按钮时,我会被重定向到: http://s.weibo.com/weibo/foo&Refer=index 因此,只需 get 该页面并对其进行处理。

【讨论】:

    猜你喜欢
    • 2013-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 2011-08-13
    • 1970-01-01
    相关资源
    最近更新 更多